AS3 Доступ к свойству класса, которое зависит от URLLoader

Я столкнулся с некоторыми проблемами в 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 не завершено. Итак, какова альтернатива или решение этого? Спасибо!


person user3368484    schedule 02.04.2014    source источник


Ответы (1)


Я думаю, что загрузка XML-файла каждый раз, когда вы хотите проверить свойство «цена» экземпляра, является проблемой.
Я бы рекомендовал загружать XML-файл как часть инициализации вашего приложения и включать функцию _loadComplete как часть этой инициализации. ; Когда XML загружен, ваше приложение может затем продолжить и создать столько экземпляров 'new Car()', сколько ему нужно - никакой задержки не потребуется, если XML предварительно загружен.

person moosefetcher    schedule 02.04.2014
comment
Спасибо за ответ! я попробую позже - person user3368484; 02.04.2014