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爲新狀態指定值

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