AS3访问依赖于URLLoader的类属性

时间:2014-04-02 11:45:07

标签: actionscript-3 urlloader

我在AS3面临一些问题。例如,我有两个类Car.asReadXML.as,如下所示:

Car.as

public class Car{

    public function get price():String{
      var priceXML:ReadXML = new ReadXML('price.xml');
      return priceXML.file;
    }
}

ReadXML.as

public class ReadXML{
    public var file:XML;
    public var loader:URLLoader;

    public function ReadXML(fileName:String):void{
        loader = new URLLoader();
        loader.addEventListener(Event.COMPLETE, _loadComplete);
        loader.load(new URLRequest(fileName));
    }

    private function _loadComplete(e:Event):void{
        file = new XML(loader.data);

        loader.removeEventListener(Event.COMPLETE, _loadComplete);
    }
}

但是当我试图访问price属性时,

var carObj:car = new Car();
trace(carObj.price)

它返回null我认为是因为URLLoader尚未完成。那么什么是替代或解决方案呢?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为每次要检查实例的“价格”属性时加载XML文件都是问题所在 我建议加载XML文件作为应用程序初始化的一部分,并将_loadComplete函数作为初始化的一部分;加载XML后,您的应用程序可以继续并实例化尽可能多的“新Car()” - 如果预先加载XML,则不需要延迟。