AS3 - MovieClip Preloader

时间:2013-10-07 14:38:16

标签: actionscript-3 preloader

我想在舞台上有多个movieClip符号实例,因此每个实例都会加载不同的图像。 movieClip符号应该有2帧。第一帧包含加载程序进度条的动作脚本;第二帧带有显示外部图像的UILoader。

我知道如何为swf文件实现预加载器。我知道如何使用UILoader创建一个movieClip符号,并使用不同的图像创建多个实例。

由于我想将此文件放在网上,我需要为每个实例添加预加载器。但我无法弄清楚如何在一个实例中安装预加载器(它不起作用;实际图像是在影片剪辑的第二帧还是在外部加载)

2 个答案:

答案 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传递给该变量。