1. import as.utils.Delegate;
  2. import as.utils.DoLater;
  3. class XmlData extends MovieClip
  4. {
  5.     private var stage:MovieClip
  6.     private var xml_data:XML
  7.     
  8.     
  9.     function XmlData(mc:MovieClip)
  10.     {
  11.         trace("[XmlData.as] - XmlData() :: ")
  12.         stage = mc
  13.     }
  14.     public function loadData(xml_file:String, fnc:Function, scope:Object):Void
  15.     {
  16.         trace("[XmlData.as] - loadData() :: xml_file: " + xml_file)
  17.         trace("[XmlData.as] - loadData() :: scope: " + scope)
  18.         xml_data = new XML()
  19.         xml_data.ignoreWhite = true
  20.         xml_data.onLoad = Delegate.create(this, _onLoad, fnc, scope)
  21.         xml_data.load(xml_file)
  22.     }
  23.     
  24.     private function _onLoad(success:Boolean, callback:Function, scope:Object)
  25.     {
  26.         trace("[XmlData.as] - _onLoad() :: " + scope)
  27.         if (success)
  28.         {
  29.             callback.apply(scope)
  30.         }
  31.         else
  32.         {
  33.             trace("[XmlData.as] - _onLoad() :: Error loading xml")
  34.         }
  35.     }
  36.     
  37.     public function getData()
  38.     {
  39.         trace("[XmlData.as] - getData() :: " + this)
  40.         return xml_data
  41.     }
  42.     
  43.     public function toString():String
  44.     {
  45.         return "[Class XmlData]"
  46.     }
  47. }
  48. // ===============================================
  49. class Test
  50. {
  51.     private var myData:XmlData
  52.     
  53.     function Test(stage)
  54.     {
  55.         trace("[Test.as] - Test() :: Constructed.")
  56.         myData = new XmlData(stage)
  57.         myData.loadData("hiroik_menu_.xml", draw, this)
  58.     }
  59.     
  60.     private function draw()
  61.     {
  62.         trace("[Test.as] - draw() :: " + this)
  63.         trace(myData.getData())
  64.     }
  65.     
  66.     public function toString():String
  67.     {
  68.         return "[Class Test]"
  69.     }
  70. }