我在文档类里就是Event.COMPLETE以后再addChild的....
package org.com{
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
import flash.display.MovieClip;
public class BackgroundBuild extends MovieClip {
private var mapData:URLLoader;
private var mapRequest:URLRequest;
private var mapList:Array;
private var mapPart:Array;
private var mapArr:Array;
public function BackgroundBuild() {
mapArr=new Array();
mapRequest=new URLRequest("map.xml");
mapData=new URLLoader();
mapData.addEventListener(Event.COMPLETE,handleComplete);
mapData.load(mapRequest);
}
private function parseMap(c:XML):void {
mapPart=new Array();
mapList=new Array();
//trace(c.children().length())
for (var i:uint=0; i<=c.children().length()-1; i++) {
mapPart.push(String(c.children()[i].@path));
mapList.push(String(c.children()[i].@id));
}
buildMap(mapList,mapPart);
}
private function handleComplete(e:Event):void {
//trace(typeof e.target.data);
parseMap(XML(e.target.data));
}
private function buildMap(list:Array,path:Array):void {
for (var i:uint=0; i<=list.length-1; i++) {
var loader:Loader=new Loader();
loader.x=i*80;
loader.y=i*80;
mapArr.push(loader);
this.addChild(loader);
var rq:URLRequest=new URLRequest(path[i]);
trace(path[i]);
loader.load(rq);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,handleBg);
}
}
private function handleBg(e:Event):void {
/*var end:uint=mapArr.length-1;
for (var i:uint=0; i<=end; i++) {
//trace(mapArr[i]);
this.addChild(mapArr[i]);
mapArr[i].x=i*80;
mapArr[i].y=i*80;
}*/
this.addChild(e.target.loader);
}
}
}