對於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類的基礎...