До сих пор находил все ответы через поиск, но тут какой-то затыр. Сдаюсь. Хоть и вопрос простой.
Ситуация: есть XML файл, из которого загружаются данные классом LoadXML. Есть основной класс gallery, куда надо передать эти данные.
В файле test.fla прописан класс actions.gallery, лежащий в соответствующей папке. В gallery импортирован actions.LoadXML.
LoadXML:
Код AS3:
package actions{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class LoadXML extends Sprite {
public var imgLinks:Array; //задаю переменную, чтоб впоследствии обратиться к ней из класса gallery
public var example:XML = new XML();
public function LoadXML() {
var loader:URLLoader = new URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("example.xml"));
}
public function onComplete (event:Event):void {
var example:XML=XML(event.target.data);
var imgLinks1 = new Array();
for (var i:int=0; i<example.image.length(); i++){
imgLinks1[i] = example.image[i];
}
imgLinks = imgLinks1;
//на этом этапе данные выводятся трейсом без ошибок
}
}
}
gallery:
Код AS3:
package actions {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.net.*;
import actions.LoadXML;
public class gallery extends Sprite {
public var loadXML:LoadXML;
public function gallery(){
trace(loadXML.imgLinks); //
}
}
}
выводит ошибку:
Код:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at actions::gallery()
Что я делаю не так? Можно достичь цели и другим способом, если объясните в общих чертах. Самому знаний пока что не хватает. Заранее спасибо