`
yunzhongxia
  • 浏览: 648392 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex失效机制

    博客分类:
  • flex
 
阅读更多

   一、什么是失效机制

        Flex 使用“失效机制(invalidation mechanism)”来同步组件的更改。Flex 用一系列方法的调用,比如在setter方法内监控一个变更变量来标记组件的某些东西已经发生变化, 然后在下一个“渲染事件(renderevent)” 中触发组件的commitProperties(), measure(), layoutChrome(),updateDisplayList()检查这些布尔变量来完成最终的变更逻辑。这样做的额外好处就是setter方法可以更迅速地返回,把对新属性值的处理留给了commitProperties()方法。

 

  二、为什么使用失效机制

      一种情况是,当设置了组件的多个属性后,比如Button 控件的label 和icon 属性,我们需要所有属性被设置后一次性执行commitProperties(), measure(), updateDisplayList()方法,而不是设置过label 属性后执行一遍这些方法,然后在设置icon属性后又执行一次这些方法。

另一种情况是几个组件同时更改了它们的字体大小。程序更改字体大小的执行速度大大快于Flex 更新应用的速度,因此要在确定最终更改字体之后才开始更新布局。另外,Flex 需要协调布局操作以消除任何冗余过程,而不是在每个组件更新它的字体大小之后都执行一次布局操作。

 

  三、失效方法的联系

       失效方法及其对应的触发函数如下:
      1. invalidateProperties() 通知组件,以使下次屏幕更新时,它的commitProperties()方法被调用。

      2. invalidateSize() 通知组件,以使下次屏幕更新时,它的measure()方法被调用。

      3. invalidateDisplayList() 通知组件,以使下次屏幕更新时它的layoutChrome()方法和updateDisplayList()方法能被调用。

      当组件调用一个“失效”方法时,它就通知Flex该组件已经被更新。当多个组件调用失效
     方法,Flex 会在schedules中协调这些更新,以使这些更新操作在下一次屏幕更新时一起执行。注意,createChildren()没有对应的失效方法,它会在调用后被立即执行。

 

  四、循环周期中我们可以遵循以下的规则

    1.如果属性需要改变子组件的一个属性时,调用invalidateProperties()同时重写commitProperties()方法。

    2.如果属性需要改变当前组件上的一些可见的内容时,调用invalidateDisplayList()方法同时重写 updateDisplayList()方法。

    3.如果属性影响了组件的大小,调用invalidateSize()方法并重写measure()方法。

分享到:
评论

相关推荐

    Flex垃圾回收机制

    Flex垃圾回收机制是ActionScript 3.0中的一个重要概念,主要应用于Adobe Flex应用程序的内存管理。在Flex开发中,理解并掌握垃圾回收的工作原理对于优化应用程序性能和避免内存泄漏至关重要。 1. **垃圾回收的基本...

    Flex Debug

    Flex提供了丰富的错误处理机制,包括抛出和捕获异常,通过日志记录错误信息等。 7. **Remote Debugging**:对于运行在远程服务器上的Flex应用,可以利用Flex的远程调试功能,通过网络连接到服务器上的应用,进行...

    Flex项目Google IFrame使用

    5. **ActionScript与IFrame通信**:在Flex中,可以通过ActionScript与IFrame内的JavaScript进行通信,但这需要正确配置事件监听器和数据传递机制。错误的设置可能导致IFrame内容不显示或功能失效。 为了更好地理解...

    理解Flex3的组件和框架的生命周期.doc

    4. 失效机制阶段:组件在不活动时进入无效状态,减少不必要的计算和更新。 5. 生效机制阶段:组件重新变得有效,进行必要的更新和重绘。 6. 更新阶段:组件在数据改变或响应用户交互时更新其状态。 7. 移除阶段:...

    flex3组件和框架的生命周期

    - 失效机制阶段 - 生效机制阶段 - 更新阶段 - 移除阶段 - **Flex应用程序生命周期** - 构造阶段 - 初始化阶段 - 预加载阶段 - 子类创建阶段 - 子类显示阶段 - 销毁阶段 - **Flex组件开发的最佳实践** - ...

    Flex3组件和框架的生命周期

    - 失效机制阶段 - 生效机制阶段 - 更新阶段 - 移除阶段 - **Flex应用程序生命周期** - 构造阶段 - 初始化阶段 - 预加载阶段 - 子类创建阶段 - 子类显示阶段 - 销毁阶段 - **最佳实践** - 使用构造器 - ...

    FLEX企业应用开发实战.part1

     2.5.3 组件的失效机制  2.5.4 使用ActionScript创建自定义组件  2.6 异步调用  2.6.1 异步调用导致模型数据不一致  2.6.2 异步调用导致用户反复(误)操作  2.7 小结 第3章 Flex企业应用开发中的主要...

    FLEX企业应用开发实战.part2

     2.5.3 组件的失效机制  2.5.4 使用ActionScript创建自定义组件  2.6 异步调用  2.6.1 异步调用导致模型数据不一致  2.6.2 异步调用导致用户反复(误)操作  2.7 小结 第3章 Flex企业应用开发中的主要...

    Altera FPGA 失效率计算

    为了更准确地预测失效率,还需要考虑各种故障机制的加速因子,这些因子反映了环境变量(如温度、电压等)对故障发生率的影响程度。 #### 寿命测试结果 Altera对各个系列的产品都进行了详尽的寿命测试,并对测试...

    支持火狐IE9的flex右键

    在Flex应用中,由于其自身的事件处理机制,原生的右键点击事件可能无法在所有浏览器中正常工作,特别是对于不同的浏览器间可能存在兼容性问题。 描述中提到的博客链接指向了一个具体的解决方案,虽然现在这个链接...

    理解Flex3组件和框架的生命周期.pdf

    失效机制是Flex框架的核心特性之一,它允许组件根据数据模型的变化自动更新其外观。 #### 生效机制阶段 当组件失效后,接下来的阶段就是生效机制。在这个阶段,组件根据最新的数据模型更新其外观。这涉及到重新...

    Flex企业应用开发实战源代码

    2.5.3 组件的失效机制 59 2.5.4 使用ActionScript创建自定义组件 62 2.6 异步调用 85 2.6.1 异步调用导致模型数据不一致 85 2.6.2 异步调用导致用户反复(误)操作 86 2.7 小结 87 第3章 Flex企业应用开发中的...

    理解Flex3的组件和框架的生命周期

    失效机制阶段是组件生命周期中的一个重要环节。在这个阶段,组件可以接收事件,并且能够根据事件调整自身状态。此外,还可以在这个阶段实现动画效果等。 **示例代码**: ```as public function invalidateProperty...

    flex事件讲解

    阅读这份文档将有助于深入理解Flex事件机制,并在实际开发中更高效地利用它们。 总之,理解Flex的事件模型对于创建响应式和高效的RIA至关重要。熟练掌握事件处理可以让你的Flex应用程序更加互动,提升用户体验。...

    Adobe Flex 3 Component Explore

    这篇博客文章(虽然链接已失效)可能详细介绍了如何使用Flex 3的组件库,包括各种内置的UI组件,如按钮、面板、列表、滑块等。这些组件在构建用户界面时非常有用,因为它们提供了一套预定义的样式和行为,开发者可以...

    Rss.rar_flex_rss开发

    7. **错误处理**:RSS源可能会出现各种问题,如URL失效、服务器错误等,因此阅读器需要有良好的错误处理机制,向用户友好地显示错误信息。 8. **性能优化**:处理大量RSS数据时,性能优化至关重要。合理使用数据...

    FLEX验证码

    在实际应用中,FLEX验证码还可以与其他验证方式结合,如时间戳验证,确保验证码在一定时间内有效,过期则失效,以防止重放攻击。此外,还可以设置用户输入次数限制,防止恶意用户频繁尝试。 对于开发人员来说,理解...

    flex builder 4注册码注册机

    这些序列号可能在短期内有效,但Adobe会不断更新其反盗版策略,使得这些非法序列号在未来的软件更新后失效,甚至可能会导致用户的开发环境出现问题。 使用Flex Builder 4的正确方式是通过官方渠道购买和获取注册码...

Global site tag (gtag.js) - Google Analytics