我使用了以下代码。
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中运行我需要做什么?
答案 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
}
}