Я загружаю SWF через файл XML.Я хочу, чтобы они были добавлены на сцену в том же порядке, в котором они появляются в XML.Проблема в том, что они добавляются на сцену только тогда, когда они полностью загружены.
Любые идеи, как мне обойти это.
Это мой xml (_config.xml)
<campaign>
<component SWFsource="logo.swf"/>
<component SWFsource="gallery.swf"/>
<component SWFsource="video.swf"/>
<component SWFsource="poll.swf"/>
<component SWFsource="facebook.swf"/>
</campaign>
Мой код AS3
var loaders:Array = []; // an Array of loaders instead of a single loader
var xml:XML;
var xmlList:XMLList;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("components.xml"));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
function xmlLoaded(event:Event):void
{
xml = XML(event.target.data);
xmlList = xml.children();
for (var i:int = 0; i < xmlList.length(); i++)
{
var swfLoader:Loader = new Loader(); // local instead of member variable
swfLoader.load(new URLRequest(xmlList[i].@SWFsource));
swfLoader.contentLoaderInfo.addEventListener(Event.INIT, loaderInitHandler);
}
}
function loaderInitHandler(event:Event):void
{
var swfInfo:LoaderInfo = event.target as LoaderInfo;
var swfLoader:Loader = swfInfo.loader;
if (loaders.length > 0) {
var lastLoader : Loader = loaders[loaders.length-1];
swfLoader.y = lastLoader.y + lastLoader.height + 10; // positioning happens here
}
addChild(swfLoader);
loaders.push(swfLoader);
}