0

我想在我的 Flash 视频上加载 2 个不同的元素:

首先是动态照片(我从外部变量中获取特定数字),然后是 swf 视频...

我的问题是?

我是 AS3 的新手,我看到我需要一个装载机,我可以装载所有东西。但是我必须有多少装载机?我可以只使用一个更改结束事件调用的函数吗?

非常感谢。

伊曼纽尔

4

3 回答 3

2

为您要加载的每个资产使用加载器。加载的资产将附加到该加载器。

看看这个http://fluxdb.fluxusproject.org/libraries/135-bulk-loader或这个http://fluxdb.fluxusproject.org/libraries/243-somaloader

两者都将管理加载许多不同的资产。

于 2010-09-06T08:41:27.427 回答
0

您可以重用 Loaders,例如:

var loader:Loader = new Loader();
loader.load(new URLRequest("http://someMedia.jpg"));

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void
{
    addChild(event.target.content);

    loader.load(new URLRequest("http://someOtherMedia.jpg"));
}

这将加载两个图像,但不利于保持一切清洁

所以我会建议这种方式

var loader1:Loader = new Loader();
loader1.load(new URLRequest("http://someMedia.jpg"));
loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader1Complete);

var loader2:Loader = new Loader();
loader2.load(new URLRequest("http://someOtherMedia.jpg"));
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader2Complete);

function onLoader1Complete(event:Event):void
{
    event.target.removeEventListener(Event.COMPLETE, onLoader1Complete);
    addChild(event.target.content);
    loader1.unload();
}

function onLoader2Complete(event:Event):void
{
    event.target.removeEventListener(Event.COMPLETE, onLoader2Complete);
    addChild(event.target.content);
    loader2.unload();
}

如果你有两三个要加载的东西,这很好,但如果你有几个,循环函数是首选

var loader:Loader;

function loopLoader():void
{
    for (var i:int = 0; i < 10; i++)
    {
        loader = new Loader();
        loader.load(new URLRequest("http://someMedia.jpg"));
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
    }
}

function onLoaderComplete(event:Event):void
{
    event.target.removeEventListener(Event.COMPLETE, onLoaderComplete);
    addChild(event.target.content);
    loader.unload();
}

loopLoader();
于 2010-09-06T23:42:03.700 回答
0

加载器很像 MovieClips - 有多少你需要多少。

于 2010-09-06T15:16:01.100 回答