About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jul

    26

    Flex 中状态与状态组的使用

    • 0 Comments
    • Flash Platform

    Flex 中状态(State)与状态组(stateGroups)的使用区别:

     状态是一个特定的视图状态,通过 currentState 属性可以设定一个应用或组件的状态,从而调整视图的效果。

     状态组是为了减少切换状态时所需要的一种 MXML 语法(为了减少代码量)。

    当更改状态组时,会使用这样的语法:属性或事件.状态组 = "状态组名称",但绝对不会使用 currentState = "状态组名称"这样的语法。 

    在使用 includeIn 和 excludeFrom 都会相应的销毁和创建目标组件,但也可以通过“创建 / 销毁策略”来改变这种情况。  

    1、在组件中设定 itemCreationPolicy 属性值,可以定义创建策略。该属性值有2个字符串值,分别是:deferred、immediate。

     deferred:则意味着组件所在的state第一次获取切换时创建(默认值)。

     immediate:则意味着组件在应用启动时创建(但如果当前状态不属于当前状态组,creationComplete 事件不会发生——该组件在第一次被渲染绘制时,才会发生该事件。该事件发生之前,组件对象的引用是存在的)。

    2、在组件中设定 itemDestructionPolicy 属性值,可以定义 销毁策略。该属性值有2个字符串值,分别是: never 、 auto 。

     never: 组件一旦创建就不会被自动销毁 (默认值)。

     auto:当离开包含该组件的状态时,组件将被自动销毁。

    但创建与销毁策略机制在一定情况下也可以使用组件的 visible 属性与 includeInLayout 属性来代替使用,但代码量相对来说会比较多一些。