Flash IE不支持as3预加载操作
我使用了下面的代码 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卡住Flash IE不支持as3预加载操作,flash,actionscript-3,actionscript,flash-cs4,flash-cs5,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 onLoadingAc
要在IE中运行,我需要做什么?不幸的是,根loaderInfo的完整事件不可靠,在不同的浏览器中表现不同。如果文件被缓存或在本地运行,它将无法在某些浏览器中启动 相反,在ENTER_帧或计时器处理程序中检查loaderInfo.bytesLoaded==loaderInfo.ByTestTotal:
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(event:Event):void
{
if(loaderInfo && loaderInfo.bytesLoaded == loaderInfo.bytesTotal)
{
// load complete
}
}
不幸的是,根loaderInfo的完整事件不可靠,并且在不同的浏览器中表现不同。如果文件被缓存或在本地运行,它将无法在某些浏览器中启动 相反,在ENTER_帧或计时器处理程序中检查loaderInfo.bytesLoaded==loaderInfo.ByTestTotal:
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(event:Event):void
{
if(loaderInfo && loaderInfo.bytesLoaded == loaderInfo.bytesTotal)
{
// load complete
}
}
只是出于好奇,你能输出onload动作的痕迹吗?@goliatone:完全阅读我的问题。我确实读了。我只是不明白你所说的“死守在线”是什么意思。我在IE中也遇到过类似的问题。死守意味着。。。它没有移动到完成事件处理程序,而是停留在progressEvent事件处理程序中。请与Mike Welsh核对答案。。。这很好。只是出于好奇,你能输出onLoadingAction的痕迹吗?@goliatone:完全阅读我的问题。我确实读了。我只是不明白你所说的“死守在线”是什么意思。我在IE中也遇到过类似的问题。死守意味着。。。它没有移动到完成事件处理程序,而是停留在progressEvent事件处理程序中。请与Mike Welsh核对答案。。。这工作得很好。难道不能使用ProgressEvent进行检查吗?不幸的是,我相信ProgressEvent在某些环境中也可能存在不触发的问题。刚才在IE9中测试本地SWF时,PROGRESS事件没有触发,即使完整事件触发了。因此,一般来说,我不会信任根loaderInfo上的事件,只会在ENTER_框架中检查是否完成。IE10上的Flash 11.8遇到了这个问题。在本地硬盘上打开文件c:/index.html加载c:/movie.swf时,不会触发进度事件。切换到onEnterFrame并检查bytesload工作正常。谢谢难道不能使用ProgressEvent进行检查吗?不幸的是,我相信ProgressEvent在某些环境中也可能存在不触发的问题。刚才在IE9中测试本地SWF时,PROGRESS事件没有触发,即使完整事件触发了。因此,一般来说,我不会信任根loaderInfo上的事件,只会在ENTER_框架中检查是否完成。IE10上的Flash 11.8遇到了这个问题。在本地硬盘上打开文件c:/index.html加载c:/movie.swf时,不会触发进度事件。切换到onEnterFrame并检查bytesload工作正常。谢谢