Я изучаю as3, и у меня возникают трудности с пониманием событий.
Я пытаюсь загрузить параметры внутри массива, к которому мне позже потребуется доступ для загрузки изображений.
Теперь ..
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
myLoader.load(new URLRequest("slides.xml"));
myLoader.addEventListener(Event.COMPLETE, processXMLSlides);
...
}
private function processXMLSlides(e:Event):void {
removeEventListener(Event.COMPLETE, processXMLSlides);
myXML = new XML(e.target.data);
myXML.ignoreWhite=true;
for (var i:int = 0; i < myXML.IMAGE.length(); i++) {
imagesURLs.push(myXML.IMAGE[i]);
//trace(myXML.IMAGE[i]);
}
//Start the main routine.
loadImages();
writeImage(imageCurrent);
}
loadImages () принимает массив imagesURLs и загружает их в другой массив как URLRequests, а затем writeImage () записывает изображение на сцену.
Теперь вот что,Если я переместу функции loadImages () и writeImage () сюда:
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
myLoader.load(new URLRequest("slides.xml"));
myLoader.addEventListener(Event.COMPLETE, processXMLSlides);
//Start the main routine.
loadImages();
writeImage(imageCurrent);
...
}
Это не сработает, потому что loadImages вызывается ДО ТОГО, как массив заполняется из xml.Теперь, как я могу сказать as3 подождать, пока processXMLSlides завершит свою работу?Мне нужно другое мероприятие?Это глупо (есть лучшие способы сделать то, что я делаю)?
Спасибо