我想在舞台上有多个movieClip符号实例,因此每个实例都会加载不同的图像。 movieClip符号应该有2帧。第一帧包含加载程序进度条的动作脚本;第二帧带有显示外部图像的UILoader。
我知道如何为swf文件实现预加载器。我知道如何使用UILoader创建一个movieClip符号,并使用不同的图像创建多个实例。
由于我想将此文件放在网上,我需要为每个实例添加预加载器。但我无法弄清楚如何在一个实例中安装预加载器(它不起作用;实际图像是在影片剪辑的第二帧还是在外部加载)
答案 0 :(得分:1)
这是因为Stage的行为与MovieClip不同。您需要以编程方式执行预加载器。为MovieClip符号定义一个类,并使其他MC的实例像预加载器一样工作,然后使其可见并在图像更改时播放它添加一个eventListener:addEventListener(ProgressEvent.PROGRESS, updateInfo);
答案 1 :(得分:0)
这可以通过使用progressBar和加载器类来完成。
import flash.display.Loader;
import fl.controls.ProgressBar;
import flash.events.Event;
import fl.containers.UILoader;
var myLoader:Loader = new Loader();
var my_pb:ProgressBar = new ProgressBar();
addChild(my_pb);
myLoader.load(new URLRequest("http://www.SomeImageURL...."));
my_pb.source = myLoader.contentLoaderInfo;
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completefunction);
function completefunction(e:Event):void
{
removeChild(my_pb);
myLoader.content.width = 200;
addChild(myLoader);
}
要让movieClip符号使用不同的图像,我们只需要在movieClip中添加一个字符串变量,并在每次创建该实例时将url传递给该变量。