Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何判断主swf何时满载?_Flash_Actionscript 3_Adobe - Fatal编程技术网

Flash 如何判断主swf何时满载?

Flash 如何判断主swf何时满载?,flash,actionscript-3,adobe,Flash,Actionscript 3,Adobe,正如我所了解的那样,Flash流式处理你的.swf文件,也就是说,即使只加载了前几帧,它也可以开始播放文件 通常,在加载外部.swf时,您只需将一个处理程序注册到Loader或URLLoader类的完整事件中,就可以了。 示例(省略异常处理等): 但是,如果.swf文件是“main”swf,即从html引用的文件,则我只能访问root.loaderInfo属性,即: root.loaderInfo.loader.addEventListener(Event.COMPLETE, completeH

正如我所了解的那样,Flash流式处理你的.swf文件,也就是说,即使只加载了前几帧,它也可以开始播放文件

通常,在加载外部.swf时,您只需将一个处理程序注册到Loader或URLLoader类的完整事件中,就可以了。 示例(省略异常处理等):

但是,如果.swf文件是“main”swf,即从html引用的文件,则我只能访问root.loaderInfo属性,即:

root.loaderInfo.loader.addEventListener(Event.COMPLETE, completeHandler);
如果加载对象未充分加载以提供此信息,则显示错误

解决方法是使用计时器并轮询bytesLoaded属性,如下所示:

var Poller:Timer = new Timer(500, 0);
Poller.addEventListener(TimerEvent.TIMER, waitForLoad);
var e:Event;
waitForLoad(e);


function waitForLoad(event:Event):void {
 if (root.loaderInfo.bytesLoaded < root.loaderInfo.bytesTotal) {
     if (!Poller.running) Poller.start();
     return;  
 } else {
     Poller.stop();  
     completeHandler(event);
 }
}
var轮询器:计时器=新计时器(500,0);
Poller.addEventListener(TimerEvent.TIMER,waitForLoad);
变量e:事件;
等待加载(e);
函数waitForLoad(事件:事件):void{
if(root.loaderInfo.bytesLoaded
必须有比这更好的解决办法。理想情况下,我可以将事件处理程序completeHandler注册到event.COMPLETE,注册到根对象或阶段对象的某些属性,当文件完全加载时,它确实会抛出此事件。。。 有人知道那是什么财产吗

干杯,
佐尔坦

注意:我使用的是AdobeFlashCS3,而不是

root.loaderInfo.loader.addEventListener(Event.COMPLETE, completeHandler);
召唤


从document类的构造函数中。在AS2中,请尝试以下代码。第一帧显示加载进度,第三帧显示主要内容。 此代码位于ActionScript 2.0参考(getBytesLoaded)中

if(此.\u框架已加载)
root.loaderInfo.loader.addEventListener(Event.COMPLETE, completeHandler);
this.loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
if (this._framesloaded<this._totalframes) {
    this.gotoAndPlay(1);
} else {
    this.gotoAndStop(3);
}