我正在通過XML文件加載swf的。我希望它們按照它們出現在XML中的順序添加到舞臺上。我遇到的問題是,只有當它們完全加載時纔會將它們添加到舞臺上。外部加載的Swf的順序
任何想法,我可以解決這個問題。
這是我的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][email protected]));
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);
}
你也可以把定位信息放在xml中 – jolyonruss 2011-04-08 14:48:34