使Spark ButtonBar像mx ToggleButtonBar Flex 4一样

时间:2012-02-08 11:55:39

标签: flex flex-spark buttonbar togglebuttonbar

大家好,我有以下代码在spark中定义一个buttonbar控件:

<s:ButtonBar id="tabs" y="15" left="0" height="31" change="VideosMenuBar_changeHandler(event)">  
        <s:ArrayCollection>
            <fx:String>Latest Videos</fx:String>
            <fx:String>Last Week Videos</fx:String>
            <fx:String>Last Month Videos</fx:String>
        </s:ArrayCollection>
</s:ButtonBar>

我有几个问题:

1)我怎么能让这个按钮栏像mx ToggleButtonBar一样反应,当我按下按钮两次而不是失去状态但保持它并且只有当我按下另一个按钮时才改变?

2)如何定义默认的按下按钮?

3)最后,我在我的应用程序中应用了一个现成的flex皮肤,这给了我的按钮在悬停,选择等方面的一些属性,如何通过我的按钮上的新皮肤定义我自己的?我为我的按钮栏定义了新属性,以免受到皮肤中声明的所有权的影响,或者我是否必须更改该皮肤中的某些内容以及如何做到这一点?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

  1. 事实上。 requireSelection = “真”
  2. ButtonBar扩展了List,因此设置selectedIndex属性应该可以正常工作
  3. 我不太确定你的意思,但你可以使用css更改按钮栏中按钮的外观:

    s | ButtonBarButton {   skin-class:ClassReference(“my.skin.class”); }

  4. 或者您可以通过创建自己的ButtonBarSkin来选择自定义按钮实现,以引用您的按钮。

    <fx:Declarations>
        <fx:Component id="firstButton">
            <you:MyLastButton />
        </fx:Component>
    
        <fx:Component id="middleButton" >
            <you:MyLastButton />
        </fx:Component>
    
        <fx:Component id="lastButton" >
            <you:MyLastButton />
        </fx:Component>
    </fx:Declarations>
    

    看看Spark自己的ButtonBarSkin是一个很好的例子,并确保这些按钮至少实现IItemRenderer或只是扩展ButtonBarButton