Хорошо ,ещё раз, но развёрнутее спрошу

Код AS3:
package
{
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.events.*;
import flash.net.*;
public class XMLDataLoader extends MovieClip
{
var path_to_script:String;
private var req:URLRequest=new URLRequest();
private var loader:URLLoader = new URLLoader();
private var list:XMLList = new XMLList();
private var regionsXML:XMLList = new XMLList();
private var variables:URLVariables = new URLVariables();
public var currentKPI:String = 'block';
public var currentRegion:String = 'KI';
public var displayLevel:String = 'all';
public var lessisbetter:int = 1;
public var mapRegionData:Object;
public var mapRegionDataArray:Array = new Array();
public var mapRegionDataArray1:Array = new Array();
public function XMLDataLoader()
{
req.url = "/index.php";
req.method = URLRequestMethod.GET;
variables.kpi = currentKPI;
variables.lessisbetter = lessisbetter;
variables.level = displayLevel;
req.data = variables;
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, completeHandler);
}
public function loadXMLData():void
{
try
{
loader.load(req);
}
catch (error:Error)
{
trace("Unable to load URL");
}
}
private function completeHandler(event:Event)
{
regionsXML = XMLList(event.target.data).oblasts.oblast;
for each (var item:XML in regionsXML)
{
mapRegionData = new Object();
mapRegionData.region = item. @ name.toString();
mapRegionData.region_short = item. @ short.toString();
mapRegionDataArray.push(mapRegionData);
//trace(mapRegionDataArray.length);
}
trace('Data loaded');
addEventListener("customEvent", handleEvent);
dispatchEvent(new Event("customEvent"));
}
public function handleEvent(event:Event):void {
mapRegionDataArray1=mapRegionDataArray;
}
}
}

Код AS3:
package {
import flash.display.Sprite;
import XMLDataLoader;
public class Main extends Sprite {
private var xmlDataLoader:XMLDataLoader;
public static const LIFE_COLOR:Number= 0xFF0000;
public static const KS_COLOR:Number = 0x0182FE;
public static const MTS_COLOR:Number = 0x00C590;
public function Main() {
xmlDataLoader = new XMLDataLoader;
xmlDataLoader.loadXMLData();
trace(xmlDataLoader.mapRegionDataArray1[0].short);
}
}
}
В xmlDataLoader получаю данные, запихиваю в массив, чтобы обрабатывать его в Main
Получается что когда я вызываю xmlDataLoader.mapRegionDataArray1[0].short из Main, то похоже в этот момент переменная ещё не существует, потому что если сделать вывод в completeHandler, то всё конечно ок.
Какой-то евент нужно использовать или как-то по другому код организовать надо?
Попробовал типа свой бросать, но толку никакого от того