gpt4 book ai didi

flash - 加载器对象不调度 Event.COMPLETE

转载 作者:行者123 更新时间:2023-12-01 08:42:18 25 4
gpt4 key购买 nike

我正在使用这个类来同步加载多个图像。不知何故,加载程序不会触发任何事件(Event.COMPLETE、ProgressEvent.PROGRESS),奇怪的是我也没有收到任何错误(使用 FlashDevelop 和 Flex3 SDK)。

package  
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;

public class MultiImgLoader extends EventDispatcher
{
private var img_array:Array;
public var images:Array;
private var loader:Loader = new Loader();

public function MultiImgLoader(img_array:Array)
{
this.img_array = img_array;
trace("[MultiImgLoader] about to load " + img_array.length);
if (img_array.length > 0)
{
load(img_array[0]);
}
}

private function load(img:String):void
{
trace("[MultiImgLoader] load " + img);
loader.addEventListener(ProgressEvent.PROGRESS, progress);
loader.addEventListener(Event.COMPLETE, this.ready);
var req:URLRequest = new URLRequest(img);
loader.load(req);
}

public function ready(ev:Event):void
{
var key:String = ev.target.contentLoaderInfo.url;
trace("[MultiImgLoader] ready " + key);
images.push( { key : ev.target } );
if (img_array.length > images.length)
{
for (var i:int = 0; i < img_array.length; i++ )
{
if (img_array[i] == key)
{
load(img_array[i+1]);
}
}
}
}

public function progress(ev:ProgressEvent):void
{
trace(ev.bytesLoaded);
}

}

}

最佳答案

好的,知道了。这个:

loader.addEventListener(ProgressEvent.PROGRESS, progress);
loader.addEventListener(Event.COMPLETE, this.ready);

应该读这个:

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ready);

我什至不知道为什么 Loader-Class 有 addEvenListener 方法 - 冗余?

关于flash - 加载器对象不调度 Event.COMPLETE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com