IE不支持as3预加载器操作

时间:2011-07-13 06:43:08

标签: flash actionscript-3 actionscript flash-cs4 flash-cs5

我使用了以下代码。

stop();
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadingAction);
this.loaderInfo.addEventListener(Event.COMPLETE, onLoadedAction);
this.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErroAction);
function onLoadingAction (e:ProgressEvent):void 
{
    trace("loading");   
}
function onLoadedAction (e:Event):void 
{
    this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadingAction);
    gotoAndStop(currentFrame+1);
}
function ioErroAction (e:IOError):void 
{
    trace("Dev Ben " + e.toString());
}

此代码支持chrome和firefox。但是,如果我使用IE运行,它会坚持使用onLoadingAction。

在IE中运行我需要做什么?

1 个答案:

答案 0 :(得分:5)

不幸的是,root loaderInfo的COMPLETE事件不可靠,并且在不同的浏览器中表现不同。如果文件被缓存或在本地运行,它将无法在某些浏览器中触发。

相反,在ENTER_FRAME或TIMER处理程序中检查了loaderInfo.bytesLoaded == loaderInfo.bytesTotal:

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(event:Event):void
{
    if(loaderInfo && loaderInfo.bytesLoaded == loaderInfo.bytesTotal)
    {
        // load complete
    }
}