Flex 4.6 State转换与Transition执行的顺序

对于含有多个State和Transition的UIComponent组件,设置currentState为非当前状态时,State和Effect有如下的执行顺序

1、停止正在执行的Transition(如果有的话),移除EffectEvent事件侦听

2、初始化新State,调用State.initialize方法

3、匹配Transition,捕获Effect的起始值。

4、移除当前状态,调用当前状态所含有的Override.remove方法

5、设置_currentState的值

6、创建新State,调用新State包含的Override.apply方法。组件的属性、Style、事件处理器设置为新值。

7、Transition的Effect把组件的相关属性、Style设置为原状态的值

8、Effect在一段时间内不断更改相关属性、Style的值

9、Effect执行完毕,把组件相关的属性、Style等设置为新State的指定值。


简而言之,Transition的Effect更改的组件相关属性、Style值 从原状态指定值 → 新State指定的值 → Effect设置组件相关属性、Style为原状态指定值 → Effect执行,一段时间内不断改变值 → Effect设置组件相关属性、Style为新状态指定值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章