MovieClipLoader的事件处理秒差

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

最近因为公司一个小案子上出的问题,研究了一下MovieClipLoader这东西的特性, 发觉到onLoadComplete的意义不等于onLoadInit。

也就是说,一般逻辑思考下,档案都下载完了,应该就能用这件事情,在这里是错的。

好比说onLoadComplete事件被触发的时候,被载入的档案的frame label其实还无法使用, 感觉上onLoadComplete只是侦测档案被完全下载到记忆体中。

后来一时好奇加上好玩,我就想说,那来看看这两个事件被触发的秒差吧~

代码:

var my_mcl:MovieClipLoader = new MovieClipLoader();

var myListener:Object = new Object();

contenter_mc._visible = 0;

function GetTime() {

var GTi:Date = new Date();

//var tmp = GTi.getTime();

var tmp = "";

tmp += GTi.getFullYear()+" : ";

tmp += GTi.getMonth()+1+" : ";

tmp += GTi.getDate()+" : ";

tmp += GTi.getDay()+" : ";

tmp += GTi.getHours()+" : ";

tmp += GTi.getMinutes()+" : ";

tmp += GTi.getSeconds()+" : ";

tmp += GTi.getMilliseconds();

return tmp;

}

function TryLoader(file) {

my_mcl.loadClip(file, contenter_mc);

myListener.onLoadStart = function(ok) {

if (ok) {

trace("onLoadStart : "+GetTime());

status_txt.text += "onLoadStart : "+GetTime()+"\n";

}

};

myListener.onLoadProgress = function(ok) {

get_txt.text = my_mcl.getProgress(contenter_mc).bytesLoaded;

all_txt.text = my_mcl.getProgress(contenter_mc).bytesTotal;

};

myListener.onLoadComplete = function(ok) {

if (ok) {

trace("onLoadComplete : "+GetTime());

status_txt.text += "onLoadComplete : "+GetTime()+"\n";

}

};

myListener.onLoadInit = function(ok) {

if (ok) {

trace("onLoadInit : "+GetTime());

status_txt.text += "onLoadInit : "+GetTime()+"\n";

contenter_mc._visible = 1;

}

};

myListener.onLoadError = function(ok) {

if (ok) {

trace("onLoadError : "+GetTime());

status_txt.text += "onLoadError : "+GetTime()+"\n";

}

};

my_mcl.addListener(myListener);

} 按钮触发

代码:

on (release) {

TryLoader("自己找个网路远端的档案");

} 我透过FLASH自己的Date物件去抓我这台电脑上的时间,得到的结果是:

代码:

onLoadStart : 2005 : 6 : 2 : 4 : 23 : 42 : 31 : 718

onLoadComplete : 2005 : 6 : 2 : 4 : 23 : 42 : 59 : 718

onLoadInit : 2005 : 6 : 2 : 4 : 23 : 42 : 59 : 750 我没注意过onLoadInit一定晚onLoadComplete多少毫秒,但我能确定一定比较晚触发。

不过两者的毫秒差,好像每次执行都有些不同,有时候甚至同时(FLASH认为同时)。

不过在远端的档案已经在本地端有「暂存」的状态下,重新整理好几次,都是得到差28毫秒。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航