`

使用延迟实例化提高启动效率

    博客分类:
  • Flex
阅读更多

问题
我们要保证组件仅仅在需要显示在屏幕上的时候才被创建。
解决办法
为容器类设置创建方针队列并且根据需要对每个子组件使用creationIndex。
讨论
Container 类默认情况下仅仅在要显示组件的时候创建它,因为UIComponent 默认的
creationPolicy 值为auto。换句话说,当视图(view)设置成可视的时候,如果还没有创建
该视图,则组件会实例化此视图。creationPolicy 的其他可能值为none,意指,所有组件
将会创建、列队,这里的创建和列队指根据其creationIndex 值进行创建。creationIndex
是以0 起始的顺序数组,组件的子组件会根据这个顺序数组来创建。
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" height="600"
width="600">
<mx:Script>
<![CDATA[
private function changeViewStackCreation():void
{
viewStack.creationPolicy = (comboBox.selectedItem as
String);
viewStack.createComponentsFromDescriptors(true);
}
private function changeViewStack():void
{
viewStack.selectedIndex =
comboBoxChangeIndex.selectedIndex;
}
]]>
</mx:Script>
<mx:Fade alphaFrom="0" alphaTo="1" duration="4000"
id="fadeIn"/>
<mx:ComboBox dataProvider="{['none', 'all', 'queued',
'auto']}" change="changeViewStackCreation()"
id="comboBox"/>
<mx:ComboBox dataProvider="{[1, 2, 3, 4]}" x="150"
change="changeViewStack()" id="comboBoxChangeIndex"/>
<mx:ViewStack id="viewStack" width="400" height="300"
creationPolicy="none" y="100">
<mx:Canvas creationCompleteEffect="{fadeIn}"
creationIndex="0" backgroundColor="#0000ff"
id="canvas1">
<mx:LinkButton label="Link Button Number One"/>
</mx:Canvas>
<mx:Canvas creationCompleteEffect="{fadeIn}"
creationIndex="1" backgroundColor="#0000ff"
id="canvas2">
<mx:LinkButton label="Link Button Number Two"/>
</mx:Canvas>
<mx:Canvas creationIndex="2" id="canvas3"
creationCompleteEffect="{fadeIn}" backgroundColor
="#0000ff">
<mx:LinkButton label="Link Button Number Three"/>
</mx:Canvas>
<mx:Canvas creationIndex="3" id="canvas4"
creationCompleteEffect="{fadeIn}" backgroundColor
="#0000ff" >
<mx:LinkButton label="Link Button Number Four"/>
</mx:Canvas>
</mx:ViewStack>
</mx:Canvas>

分享到:
评论

相关推荐

    flex3的cookbook书籍完整版dpf(包含目录)

    3.15 节使用延迟实例化提高启动效率 3.16 节创建并控制可调整大小的容器 3.17节在TabNavigator内创建、启用和禁用TAB组件(TabControls) 3.18 节使用可关闭Tabs 创建一个TabNavigator 3.19 节创建和控制Alert 3.20 节...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例150 实例化Class类的5种方式 196 实例151 获得Class对象表示实体的名称 197 实例152 查看类的声明 198 实例153 查看类的成员 199 实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 ...

    Android学习系列教程实例.pdf

    1.3. Android 系统的初始化流程 ........... 15 1.3.1. 启动 BootLoader .................... 15 1.3.2. 加载系统内核 ........................ 15 1.3.3. 启动 Init 进程 ......................... 16 1.3.4. ...

    Hibernate参考文档

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    static:静态是Litenin和Nimbus之间的缓存层

    分布和可伸缩性:通过启动其他静态实例,可以轻松提高Nimbus资源的可用性。 通过在相关区域中使用静态运行实例,可以将延迟保持在最低水平。目标静态的目标是在Litenin和Nimbus之间提供一个缓存层,以最大程度地...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    3.6 延迟签名 3.7 私有部署强命名程序集 3.8 “运行时”如何解析类型引用 3.9 高级管理控制(配置) 3.9.1 发布者策略控制 第4章 类 型 基 础 4.1 所有类型都从System.Object派生 4.2 类型转换 4.2.1 使用C#...

    Hibernate 中文 html 帮助文档

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    Hibernate中文详细学习文档

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    hibernate 体系结构与配置 参考文档(html)

    启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. ...

    Hibernate+中文文档

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    HibernateAPI中文版.chm

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    hibernate3.2中文文档(chm格式)

    19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using batch fetching) 19.1.6. 使用子查询抓取(Using subselect fetching) 19.1.7. 使用延迟属性抓取(Using lazy...

    并行计算导论(原书第2版).[美]Ananth Grama(带详细书签).pdf

    2.2.1 使用高速缓存改善有效内存延迟 2.2.2 内存带宽的影响 2.2.3 躲避内存延迟的其他方法 2.2.4 多线程与预取间的权衡 2.3 并行计算平台剖析 2.3.1 并行平台的控制结构 2.3.2 并行平台的通信模型 2.4 并行...

    PROJECT 2007宝典 9/9

     8.4.2 在日程中使用可视化效果   8.4.3 插入可视化对象   8.4.4 使用绘图工具栏   8.4.5 修改图形和绘图   8.5 小结   第9章 解决日程安排问题   9.1 解决日程安排冲突   9.1.1 向任务添加...

    PROJECT 2007宝典 7/9

     8.4.2 在日程中使用可视化效果   8.4.3 插入可视化对象   8.4.4 使用绘图工具栏   8.4.5 修改图形和绘图   8.5 小结   第9章 解决日程安排问题   9.1 解决日程安排冲突   9.1.1 向任务添加...

    PROJECT 2007宝典 1/10

     8.4.2 在日程中使用可视化效果   8.4.3 插入可视化对象   8.4.4 使用绘图工具栏   8.4.5 修改图形和绘图   8.5 小结   第9章 解决日程安排问题   9.1 解决日程安排冲突   9.1.1 向任务添加...

Global site tag (gtag.js) - Google Analytics