技术分享Flex初始化时事件如何测试

本文和大家重点讨论一下Flex 初始化时的事件测试,Flex组件在建立的时候都会经历四个事件:preinitialize, initialize, creationComplete和updateComplete(updateComplete事件在任何改动视觉的情况下都会发生,不是初始化时独有的)。

万州ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

Flex 初始化时的事件测试

Flex组件在建立的时候都会经历四个事件:preinitialize, initialize, creationComplete和updateComplete(updateComplete事件在任何改动视觉的情况下都会发生,不是初始化时独有的)。我这里有个例子来检测在嵌套和平行的情况下,Flex 初始化时测试各个组件的事件抛出顺序。

 
 
 
  1. xml version="1.0" encoding="utf-8"?>
  2. layout="absolute" 
  3.  preinitialize="showEvent(event)" 
  4.  initialize="showEvent(event)" 
  5.  creationComplete="showEvent(event)" 
  6.  updateComplete="showEvent(event)">
  7.  
  8.  
  9.     
  10.    import flash.utils.getTimer;  
  11.    private function showEvent(event:Event):void  
  12.    {  
  13.     trace(flash.utils.getTimer().toString()+" >> "
  14. +event.currentTarget.name+" "+event.type);  
  15.    }  
  16.   ]]> 
  17.  mx:Script> 
  18.    
  19.  <mx:Canvas id="canv1" 
  20.   preinitialize="showEvent(event)"   
  21.   initialize="showEvent(event)"   
  22.   creationComplete="showEvent(event)"   
  23.   updateComplete="showEvent(event)"> 
  24.    
  25.   <mx:Button id="btn1" 
  26.    preinitialize="showEvent(event)"   
  27.    initialize="showEvent(event)"   
  28.    creationComplete="showEvent(event)"   
  29.    updateComplete="showEvent(event)"/> 
  30.  mx:Canvas> 
  31.    
  32.  <mx:Button id="btn2" 
  33.    preinitialize="showEvent(event)"   
  34.    initialize="showEvent(event)"   
  35.    creationComplete="showEvent(event)"   
  36.           updateComplete="showEvent(event)"/> 
  37.    
  38. mx:Application> 
  39.  

 

它的输出是:

  1. 1299 >> eventTest0 preinitialize  
  2.  
  3. 1307 >> canv1 preinitialize  
  4.  
  5. 1310 >> btn1 preinitialize  
  6.  
  7. 1318 >> btn1 initialize  
  8.  
  9. 1319 >> canv1 initialize  
  10.  
  11. 1320 >> btn2 preinitialize  
  12.  
  13. 1321 >> btn2 initialize  
  14.  
  15. 1321 >> eventTest0 initialize  
  16.  
  17. [SWF] G:\projects\eventTest\bin-debug\eventTest.swf – 588,
  18. 818 bytes after decompression  
  19.  
  20. 1387 >> btn1 creationComplete  
  21.  
  22. 1387 >> btn1 updateComplete  
  23.  
  24. 1387 >> canv1 creationComplete  
  25.  
  26. 1387 >> canv1 updateComplete  
  27.  
  28. 1388 >> btn2 creationComplete  
  29.  
  30. 1388 >> btn2 updateComplete  
  31.  
  32. 1388 >> eventTest0 creationComplete  
  33.  
  34. 1390 >> eventTest0 updateComplete  
  35.  

 看着有点混乱,不过仔细看看,可以把过程分成两个部分。很明显,所有的creationComplete和updateComplete发生在第二次update的时候,之前Flex组件只是做一些设置和计算的工作,并没有在画布上画任何东西。除此以外,还有这么一些规律:

◆就单个组件而言,Flex 初始化时事件的抛出顺序是preinitialize,initialize,creationComplete

◆嵌套关系的两个组件(比如Canvas和button1),preinitialize先外后内,initialize和creationComplete先内后外。只是creationComplete要在下一次update才会发生。
◆平行关系的两个组件(比如Canvas和button2),按mxml内的顺序,只有前面组件initialize结束后,后面的组件才会抛出preinitialize。

网站名称:技术分享Flex初始化时事件如何测试
网站链接:http://www.shufengxianlan.com/qtweb/news36/528936.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联