我在AS3面临一些问题。例如,我有两个类Car.as
和ReadXML.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
尚未完成。那么什么是替代或解决方案呢?谢谢!
答案 0 :(得分:1)
我认为每次要检查实例的“价格”属性时加载XML文件都是问题所在 我建议加载XML文件作为应用程序初始化的一部分,并将_loadComplete函数作为初始化的一部分;加载XML后,您的应用程序可以继续并实例化尽可能多的“新Car()” - 如果预先加载XML,则不需要延迟。