我正在尝试在AS3中加载多个图像,我正在探索如何做到这一点的不同选项。
我想只使用一个Load()实例并处理onComplete处理程序中的各种图像分配......
这是我的第一次尝试:
var buttonLdr:Loader = new Loader();
buttonLdr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
buttonLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
whichButton = 0;
buttonLdr.load(new URLRequest("images/test.png"));
whichButton = 1;
buttonLdr.load(new URLRequest("images/testDown.png"));
whichButton = 2;
buttonLdr.load(new URLRequest("images/testHover.png"));
private function onLoadComplete(e:Event):void
{
switch(whichButton)
{
case 0:
buttonBgUp = e.target.loader.content;
break;
case 1:
buttonBgDown = e.target.loader.content;
break;
case 2:
buttonBgHover = e.target.loader.content;
break;
}
create();
}
一种非常简单的方法......虽然它只调用最后一次调用的函数,但是设置了buttonBgHover,但没有别的。
对此可能发生的任何指导都将不胜感激。
-Thanks
答案 0 :(得分:1)
只有在前一次加载完成时才需要调用下一个加载。
whichButton = 0;
buttonLdr.load(new URLRequest("images/test.png"));
private function onLoadComplete(e:Event):void
{
switch(whichButton)
{
case 0:
buttonBgUp = e.target.loader.content;
whichButton = 1;
buttonLdr.load(new URLRequest("images/testDown.png"));
break;
case 1:
buttonBgDown = e.target.loader.content;
whichButton = 2;
buttonLdr.load(new URLRequest("images/testHover.png"));
break;
case 2:
buttonBgHover = e.target.loader.content;
break;
}
create();
}