• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>Flex>文章内容
  • 改变ViewStack子对象的创建策略
  • 来源:N神AS研究所 作者:N神AS研究所 2008-05-12 【
ViewStack 在默认情况下,所有子对象只有在第一次显示的时候才被实例化
  <mx:ViewStack id="mainview" width="80%" height="80%">
    <ui:APanel id="a_panel" creationComplete="trace(1)">
    </ui:APanel>
    <ui:BPanel id="b_panel" creationComplete="trace(2)">
    </ui:BPanel>
    
  </mx:ViewStack>

只会trace出来 1

这个叫做 deferred instantiation ,是为了性能考虑,需要的时候才实例化

但有些时候,没显示的子对象,需要监听外部的一些事件 ...但没被实例化当然监听不到啊 ? 所以以前写这块的地方要额外注意..

今天才发现ViewStack原来有继承Container这个叫做 creationPolicy 的属性~~ ,可以设置子对象默认的创建策略

加一个 creationPolicy="all" ,就可以让ViewStack建立的时候把所有子对象都实例化,哈哈,这样就可以监听到外边的事件了 ~~~
  <mx:ViewStack creationPolicy="all" id="mainview" width="80%" height="80%">
    <ui:APanel id="a_panel" creationComplete="trace(1)">
    </ui:APanel>
    <ui:BPanel id="b_panel" creationComplete="trace(2)">
    </ui:BPanel>
    
  </mx:ViewStack>

这样,1,2都被trace出来了 :)

具体见帮助文档 Container的 creationPolicy 属性




上一篇:Working with FlexBuilder3 + Subversion   下一篇:FLEX里的动态Event类:DynamicEvent
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
FLASH源文件

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)