如何使用非默认皮肤状态启动spark组件?

时间:2014-01-14 10:45:51

标签: actionscript-3 flex flex4 skin flex-spark

我正在创建一个扩展Spark Button类的自定义按钮。我的按钮的皮肤类支持2种皮肤状态,“向上”和“向下”。

当我通过下拉等一些措施更改Button的皮肤状态时,自定义按钮正常工作。但是当我尝试使用皮肤状态初始化自定义按钮时,通过'currentState'指令,它会引发运行时错误

ArgumentError: Undefined state 'down'.

以下是我的自定义皮肤类的一部分

<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx">
<!-- host component -->
<fx:Metadata>
    [HostComponent("components.CustomButton")]
</fx:Metadata>

<s:states>
    <s:State name="up" />
    <s:State name="down" />
</s:states>
    ....
    ....
</s:Skin>

自定义Button类并不多,它只是扩展Button类加上一些[SkinState]和[SkinPart]指令。

以下是我想使用自定义按钮的方式

<comp:CustomButton skinClass="skins.CustomButtonSkin" currentState="down"/>

谢谢, 萨米特

1 个答案:

答案 0 :(得分:0)

为我的自定义按钮创建了一个Style属性,然后使用它从getCurrentSkinState方法

为我的皮肤类设置正确的皮肤状态