MovieClipLoader的事件处理秒差

    最近因为公司一个小案子上出的问题,研究了一下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毫秒。

时间: 2024-12-29 20:10:17

MovieClipLoader的事件处理秒差的相关文章

Flash:MovieClipLoader事件处理秒差

最近因为公司一个小案子上出的问题,研究了一下MovieClipLoader这东西的特性,  发觉到onLoadComplete的意义不等于onLoadInit.     也就是说,一般逻辑思考下,档案都下载完了,应该就能用这件事情,在这里是错的.      好比说onLoadComplete事件被触发的时候,被载入的档案的frame label其实还无法使用,  感觉上onLoadComplete只是侦测档案被完全下载到记忆体中.      后来一时好奇加上好玩,我就想说,那来看看这两个事件被触

趋势云安全拦截IE 7.0零时差漏洞攻击网页

12月9日,微软定期发布修补程序,但却于第二天就出现了最新的IE7.0零时差漏洞攻击,此弱点至今尚未修补.黑客利用此漏洞植入有害的JavaScript,透过微软Internet Explorer7.0网页浏览器中SDHTML在处理XML时的弱点,对网页浏览者进行攻击.使用者即使更新了周二最新发布的修补程序,还是有可能因为使用 IE7.0 而被入侵. 趋势科技的云安全技术,利用毫秒级的运算速度,可以在7-15分钟内成功地拦截了恶意攻击网址(如下图,为12月10日的统计截屏).而事实上,趋势科技早已

ASP+JS获取并实时显示服务器时间的代码

asp+|js|服务器|显示 第一种代码: <html><head> <script language=javascript type="text/javascript"> //特别注明:北京时间是格林尼治标准时加八小时,因此用的起始时间也是从八点起算的 var secondServer = <%=DateDiff("s", "1970-01-01 08:00:00", Now())%>; var

提高数据显示效率--缓存探幽

缓存|数据|显示 写在前面的话:此篇还是asp相关的,相信玩ASP的都有这个感觉,当数据有5万多条时-------justlike音乐网,要调用最新的10条在页面显示,糟糕的是,当n多用户打开页面访问的时候,每个用户每次都要读取数据库一次,这无疑降低了效率,很明显,如果能把数据能保存在内存上,然后读取,无疑加快了速度.所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问你保存在硬盘上的数据了,因为这些数据我们希望每个用户都能看到效果一样,考虑使用的是applicatio

使用application提高ASP数据显示效率

当数据上到好几万多条时,要调用几条数据在页面显示,ASP就会慢如蜗牛.最糟糕的是,当n多用户打开页面访问的时候,每个用户每次都要读取数据库一次,这无疑降低了效率,很明显, 如果能把数据能保存在内存上,然后读取,无疑加快了速度. 所谓缓存其实就是在内存中开辟一个用来保存数据的空间. 使用缓存你就不用频繁的访问你保存在硬盘上的数据了,因为这些数据我们希望每个用户都能看到效果一样,考虑使用的是application对象,因为它是所有访问者的共用的对象,存储的信息和定义的事件能够为所有者访问者使用,这里

JS中字符串trim()使用示例

  本文主要给大家介绍的是javascript中的扩展方法字符串trim()的使用指南,十分的简单实用,有需要的小伙伴可以参考下. 示例一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <head> <title>测试JS扩展方法</title> <script type="text/javascript"> // 合并多个空白为一个空白 String.prototype.ResetBla

JS扩展方法实例分析

 JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <head> <title>测试JS扩展方法</title> <script type="text/javascript"> // 合并多个空白为一个空

JS基础教程——正则表达式示例(推荐)

正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字.[\s*]表示空格或者*号. {}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格. (0-9) 匹配 '0-9′ 本身. [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后

ASP提高数据显示效率-缓存探幽_应用技巧

所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问你保存在硬盘上的数据了,因为这些数据我们希望每个用户都能看到效果一 样,考虑使用的是application对象,因为它是所有访问者的共用的对象,存储的信息和定义的事件能够为所有者访问者使用,这里要使用asp内置对 象APPLICATION了,关于application,有2个方法[lock和unlock],2个集合[content和 staticobjects],2个事件[开始的application_onstart和