Flex component lifecycle

16
Flex 组组组组组组

Transcript of Flex component lifecycle

Page 1: Flex component lifecycle

Flex 组件生命周期

Page 2: Flex component lifecycle

Flash Release Model

Users

Flash Player

insdeco.swf

Flex & AS3

Page 3: Flex component lifecycle
Page 4: Flex component lifecycle

RenderingCode Execution

1Frame

Heavy RenderingHeavy Code Execution

Elastic Racetrack

Page 5: Flex component lifecycle

Actionscript Virtural Machine 2 Slice

Render ActionInvalidate ActionUser Action

Player Events

User Code

Prerender Event

User Code

Player Render

Page 6: Flex component lifecycle

20 ms / sliceFlash Frames Synthesized From AVM2 Slices

50fps

25fps

5fps

1Frame(20ms)

1Frame(40ms)

1Frame(200ms)

Page 7: Flex component lifecycle

死亡成熟萌芽

Page 8: Flex component lifecycle

Construction

Additon

var btn:MyButton = new MyButton();

this.addChild(btn);

addingChild()

$addChild()

childAdded()

Page 9: Flex component lifecycle

Initialization

dispatch PREINITIALIZE event

createChildren()

childrenCreated()

initializeAccessiblility()

initializeComplete()

dispatch INITIALIZE event

Page 10: Flex component lifecycle

createChildren()

partAdded()

findSkinParts()

attachSkin()

validateSkinChange()

SkinComponent

数据逻辑

动画状态布局可视组件

Page 11: Flex component lifecycle

Initialization

dispatch PREINITIALIZE event

createChildren()

childrenCreated()

initializeAccessiblility()

initializeComplete()

dispatch INITIALIZE event

Page 12: Flex component lifecycle

Invalidation

Validation

Update

invalidateProperties()

invalidateSize()

invalidateDisplayList()

commitProperties()

measure()

updateDisplay()

Page 13: Flex component lifecycle

Invalidation Validation

Component

invalidateProperties()

commitProperties()

validateProperties()

LayoutManager

validateProperties()

invalidateProperties()

invalidatePropertiesQueue

updateCompleteQueue

Page 14: Flex component lifecycle

Invalidation

Validation

Update

invalidateProperties()

invalidateSize()

invalidateDisplayList()

commitProperties()

measure()

updateDisplay()

Page 15: Flex component lifecycle

Removel

GC

this.removeChild(btn);

Page 16: Flex component lifecycle

The End