Flex4中的面板(2) Skin State

2021-08-24 19:59:10 字數 1384 閱讀 8673

對於transitionskin,需要在enable時有不同的展現方式,這可以通過skin state實現。

首先在元件中定義isenabled屬性:

private var _isenabled:boolean = false; public function get isenabled():boolean public function set isenabled(value:boolean):void

然後定義skinstate元標籤:

[skinstate("normal")] [skinstate("enable")]

最後需要將屬性值和元件狀態關聯起來,這是通過覆蓋skinnablecomponent的getcurrentskinstate方法實現的。

該方法的最初定義如下:

在node中需要覆蓋該方法:

override protected function getcurrentskinstate():string

完整的node**如下:

node.as

package skinsample private var _isenabled:boolean = false; public function get isenabled():boolean public function set isenabled(value:boolean):void override protected function getcurrentskinstate():string } }

skin中首先需要增加狀態的宣告:

接下來可以指定skin元素在哪個狀態中出現,預設是在所有狀態中出現。xml節點和屬性都可以進行指定。

對於xml節點,增加includein屬性,如:

對於xml屬性,增加 屬性名稱.狀態名稱 指定特定狀態下的屬性值,如:

完整的skin**如下:

transitionskin.mxml

<?xml version="1.0" encoding="utf-8"?>

placeskin.mxml

<?xml version="1.0" encoding="utf-8"?>

定義好元件和skin後,就可以使用了:

nodesample.mxml

執行效果:

Flex4中的面板(5) 小結

flex4中的spark元件將顯示和邏輯完全分開,通過指定skinnablecomponent的skinclass樣式指定其skin。skin和元件之間通過state data 和skinpart 進行互動。skinnablecomponent和skin都繼承自uicomponent。接下來的問題是...

Flex4中的面板(5) 小結

flex4中的 5 小結 flex4中的spark元件將顯示和邏輯完全分開,通過指定skinnablecomponent的skinclass樣式指定其skin。skin和元件之間通過state data 和skinpart 進行互動。skinnablecomponent和skin都繼承自uicomp...

flex4自定義面板詳解

在flex4新增加了乙個包 spark.skins,這個包裡面只有乙個類 sparkskin,而我們 非美工的程式設計師 通過這個class來實現任意自定義控制項的樣式。通過上述關係可以得出如下的結論 1 sparkskin是乙個group型別的容器。它繼承與group 2 是全部spark類的基礎...