我创建了3个movieClip,并添加到另一个名为 mc 的movieClip容器中。
for(i = 0;i<3;i++)
{
imgBox = new box();
mc.addChild(imgBox);
imgBox.name = "box" + i;
}
xml 图片名称为 image1.jpg,image2.jpg和imag3.jpg 并存储在 thumbArray 。
for(i = 0;i<thumbArray.length; i++)
{
thumbLoader = new Loader();
thumbLoader.load(new URLRequest(thumbArray[i]));
thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbLoaded);
}
我装了。
int count = -1;
function onThumbLoaded (e:Event):void
{
count++;
var img:Bitmap = Bitmap(e.target.content);
MovieClip(mc.getChildByName("box" +count)).addChild(img);
}
最后加载了,但显示的海序序像 image3,image1和image2 。我想要海量 image1,image2和imag3 。
有什么问题?
答案 0 :(得分:1)
问题在于您无法控制每次加载的速度,因此无法保证第一个加载器将首先完成等等。您的最佳方法可能是命名加载器,并使用名称来引用目标。像这样:
for(i = 0;i<thumbArray.length; i++)
{
thumbLoader = new Loader();
//assign a name that matches the target box name, with "Loader" on the end
thumbLoader.name = "box" + i + "Loader";
thumbLoader.load(new URLRequest(thumbArray[i]));
thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbLoaded);
}
function onThumbLoaded (e:Event):void
{
var img:Bitmap = Bitmap(e.target.content);
//slice the "Loader" off the name
var loadName:String = e.target.name.slice(0,-6);
MovieClip(mc.getChildByName(loadName)).addChild(img);
}