对于含有多个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为新状态指定值
Flex 4.6 State转换与Transition执行的顺序
原文地址:http://cstar.blog.51cto.com/2923639/1656521