В настоящее время я создал класс, который можно использовать для доступа ко всем моим данным xml в AS3. Проблема, которая у меня была, связана с изменением переменных внутри функции xmlIsLoaded. Когда я отслеживаю переменную xml, она показывает данные xml, но я, когда я ее отслеживал в функции loadPanelData(), получил пустую ссылку. В приведенном ниже коде я экспериментировал с переменной int, и когда я ее протестировал, он проследил начальное значение 0 и не изменился на 2.Невозможно изменить или изменить переменную XML (AS3)
Очевидно, есть кое-что, что я не понимаю, когда дело доходит до того, как xmlIsLoaded но необходимо получить доступ к данным xml (когда я просто выполняю регулярную функцию без прослушивателей, переменная xml пуста и ничего не отслеживает). Надеюсь, у кого-то есть решение, так как я новичок в использовании XML с AS3.
public class XMLLoader extends EventDispatcher
{
var xml:XML;
var productElement:XMLList;
var productElementXML:XML;
var num:int = 0;
public function XMLLoader()
{
var xmlUrl:URLLoader = new URLLoader(new URLRequest("Project/XMLFiles/PagesXML.xml"));
xmlUrl.addEventListener(Event.COMPLETE, xmlIsLoaded);
}
private function xmlIsLoaded(e:Event)
{
xml = new XML(e.target.data);
num = 2;
//trace("this is the xml starting point" + xml.pages + "this is the xml in the class");
dispatchEvent(new Event(Event.COMPLETE));
}
public function loadPanelData()
{
trace("product element test" + num);
}
}