event.COMPLETE处理程序问题

时间:2010-06-28 18:08:39

标签: flex upload event-handling

我想在成功下载或上传这两个文件时调度自定义事件。我用

fileRef.addEventListener(Event.COMPLETE, completeHandler);
fileBigRef.addEventListener(Event.COMPLETE, completeHandler);

只用一个处理程序来监听整个事件。

function completeHandler(event:Event):void{
    var e:Event=new Event("addInfoDone");
    dispatchEvent(e);
    fileBigRef.removeEventListener(Event.COMPLETE,completeHandler);
    fileRef.removeEventListener(Event.COMPLETE,completeHandler);
}

我希望在fileRef和fileBigRef都完全传输时只调度一次事件。有任何想法吗??我的大脑现在已经炒了,什么都想不到.....谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

对于快速而肮脏的解决方案,如何定义每次completeHandler时都会增加的计数器。一旦计数器达到了您期望的文件数量(听起来像是您期望的2),您就会触发addInfoDone事件:

var fileRefCounter:Number = 0;

function completeHandler(event:Event):void{
    fileRefCounter++;
    if(fileRefCounter == 2)
    {
        // both files have downloaded; fire your custom event, or whatever
    }
}