Посмотрите ниже написанный код и подскажите как его грамотно исправить.
Задача следующая: сделать клас который будет читать XML из указанного файла и передавать его содержимое через экземпляр класса.

Код:
package rain.myxml{
import flash.display.*
import flash.events.*
import flash.net.*
import flash.utils.*
public class LoadXML extends Sprite {
public var _XMLRequest:String
private var _XMLdata:XML;
public function LoadXML() {
} //end public function LoadXML
public function getXMLdata():XML {
return _XMLdata
}
public function getXMLRequest():String {
return _XMLRequest
}
public function LoadFile(FileName:String):void {
_XMLRequest = FileName;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, handleXML);
loader.load(new URLRequest (FileName));
}//end private function loadFile
private function handleXML(event:Event):void{
var GetXML:XML = new XML(event.target.data);
_XMLdata = GetXML;
trace(_XMLdata);
//_XMLdata = <example><item Element="пример" /></example>;
}//end private function handleComplete(event:Event)
} //end public class LoadXML
}// end package rain.myxml
но при создании экземпляра, пример:

Код:
var NewLoadXML:LoadXML = new LoadXML();
NewLoadXML.LoadFile("test.xml");
trace(NewLoadXML.getXMLRequest())
trace(NewLoadXML.getXMLdata());
последний оператор trace выдает параметр null
я подозреваю что все это происходит по причине того что метод getXMLdata() обрабатывается быстрее чем loader.addEventListener(Event.COMPLETE, handleXML);
но как это побороть???
заранее спасибо за ответ.