我在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);
}
}
但是当我尝试访问价格属性时,
var carObj:car = new Car();
trace(carObj.price)
它返回 null,我认为这是因为URLLoader
尚未完成。那么,对此的替代方案或解决方案是什么?谢谢!
我认为每次要检查实例的"price"属性时加载XML文件都是问题所在。
我建议将 XML 文件作为应用程序初始化的一部分加载,并将 _loadComplete 函数作为初始化的一部分;加载 XML 后,您的应用程序可以继续并实例化任意数量的"new Car()"——如果 XML 已预加载,则不需要延迟。