根据我last question(我建议阅读它以完全理解这个问题)我得出结论,我必须使用几个装载机。起初我在想“哦,我只使用十六个装载机”,但我必须这样做吗?也许我应该只创造它们的八分之一?然后我找到了tutorial。
如果我是正确的,我只需创建8个Loaders,然后addChild来纠正img1 / img2?
你觉得男人们怎么样?我会感谢你的回答。答案 0 :(得分:0)
我认为你只需要一个加载器,但这取决于你想要一次下载多少东西。 8个加载器将(可能)一次发送8个图像(当然,这可能受到服务器的限制)。您可以将所有图像分配到一个阵列,然后在需要的位置循环该阵列。如果你想加载8个图像,那么(使用链接示例中的代码)就像是:
import mx.controls.Loader;
var imgArr:Array = ["img1.jpg","img2.jpg",/* and so on */,"imgN.jpg" ];
var ldrArr:Array = [];
for (var :Number = 0; < imgArr.length; ++)
{
ldrArr[i] = new Loader();
ldrArr[i].contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
ldrArr[i].load(new URLRequest(imgArr[i]));
}
function finishLoading(e:Event):void {
// Get the current loader
var curLdr:Loader = (e.target as Loader);
curLdr.contentLoaderInfo.removeEventListener(Event.COMPLETE, finishLoading);
addChild(curLdr); // you will have to fix this to actually load the image
}
但如果你只想要一个装载机,试试这个:
import mx.controls.Loader;
var imgArr:Array = ["img1.jpg","img2.jpg",/* and so on */,"imgN.jpg" ];
var ldr:Loader;
function startLoader() {
if ( imgArr.length > 0 )
{
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
ldr.load(new URLRequest(imgArr.pop());
}
}
function finishLoading(e:Event):void {
ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, finishLoading);
addChild(ldr); // you will have to fix this to actually load the image
// start over with next image:
startLoader();
}