關於自定義spark組件的學習體會

當使用Action Script創建一個skinnable component組件時,需要創建2個類。一個是組件類,一個組件類要使用的skin類。

1.在組件類中定義了組件的核心行爲,包括派發事件、組件所要顯示的數據、在皮膚中實現的skin part和view states。

2.而皮膚類則定義了組件外觀相關的信息,定義了組件中所包含的子組件,組件的默認佈局等。

自定義組件可能會需要重載4個方法,commitProperies(),createChildren(),measure(),updateDisplayList().

而自定義skinnable component組件時,還可能需要重載下面幾個方法。 attachSkin(),detachSkin(),partAdded(),partRemoved(),getCurrentState()

 

仔細看下面的2個例子,代碼來自於官方教程Using_Flex4中的2337頁。

 

 

 

第1段代碼是組件類,

第2段代碼是皮膚類。

 

這2段代碼中說明了好多問題。

1.組件類中的組件如何和皮膚類中定義的組件對應

 

組件類中的代碼:

[SkinPart(required="true")]

public var modeButton:Button;

皮膚類中的代碼:

<s:Button id="modeButton"/>

 

2.如何在皮膚中定義state並且在組件類中使用

 

組件類中的代碼:

 

[SkinState("normal")]

[SkinState("normalDisabled")]

[SkinState("textLeft")]

[SkinState("textLeftDisabled")]

 

皮膚類中的代碼:

 

<s:states>

<s:State name="normal" />

<s:State name="normalDisabled" stateGroups="disabledGroup"/>

<s:State name="textLeft"/>

<s:State name="textLeftDisabled" stateGroups="disabledGroup"/>

</s:states>

 

 

 

 

 

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