我想在我的 Flash 视频上加载 2 个不同的元素:
首先是动态照片(我从外部变量中获取特定数字),然后是 swf 视频...
我的问题是?
我是 AS3 的新手,我看到我需要一个装载机,我可以装载所有东西。但是我必须有多少装载机?我可以只使用一个更改结束事件调用的函数吗?
非常感谢。
伊曼纽尔
我想在我的 Flash 视频上加载 2 个不同的元素:
首先是动态照片(我从外部变量中获取特定数字),然后是 swf 视频...
我的问题是?
我是 AS3 的新手,我看到我需要一个装载机,我可以装载所有东西。但是我必须有多少装载机?我可以只使用一个更改结束事件调用的函数吗?
非常感谢。
伊曼纽尔
为您要加载的每个资产使用加载器。加载的资产将附加到该加载器。
看看这个http://fluxdb.fluxusproject.org/libraries/135-bulk-loader或这个http://fluxdb.fluxusproject.org/libraries/243-somaloader
两者都将管理加载许多不同的资产。
您可以重用 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();
加载器很像 MovieClips - 有多少你需要多少。