flex component lifecycle
TRANSCRIPT
Flex 组件生命周期
Flash Release Model
Users
Flash Player
insdeco.swf
Flex & AS3
RenderingCode Execution
1Frame
Heavy RenderingHeavy Code Execution
Elastic Racetrack
Actionscript Virtural Machine 2 Slice
Render ActionInvalidate ActionUser Action
Player Events
User Code
Prerender Event
User Code
Player Render
20 ms / sliceFlash Frames Synthesized From AVM2 Slices
50fps
25fps
5fps
1Frame(20ms)
1Frame(40ms)
1Frame(200ms)
死亡成熟萌芽
Construction
Additon
var btn:MyButton = new MyButton();
this.addChild(btn);
addingChild()
$addChild()
childAdded()
Initialization
dispatch PREINITIALIZE event
createChildren()
childrenCreated()
initializeAccessiblility()
initializeComplete()
dispatch INITIALIZE event
createChildren()
partAdded()
findSkinParts()
attachSkin()
validateSkinChange()
SkinComponent
数据逻辑
动画状态布局可视组件
Initialization
dispatch PREINITIALIZE event
createChildren()
childrenCreated()
initializeAccessiblility()
initializeComplete()
dispatch INITIALIZE event
Invalidation
Validation
Update
invalidateProperties()
invalidateSize()
invalidateDisplayList()
commitProperties()
measure()
updateDisplay()
Invalidation Validation
Component
invalidateProperties()
commitProperties()
validateProperties()
LayoutManager
validateProperties()
invalidateProperties()
invalidatePropertiesQueue
updateCompleteQueue
Invalidation
Validation
Update
invalidateProperties()
invalidateSize()
invalidateDisplayList()
commitProperties()
measure()
updateDisplay()
Removel
GC
this.removeChild(btn);
The End