Apache flex 使spark ButtonBar像mx ToggleButtonBar Flex 4一样工作

Apache flex 使spark ButtonBar像mx ToggleButtonBar Flex 4一样工作,apache-flex,flex-spark,buttonbar,togglebuttonbar,Apache 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

您好,我有下面的代码来定义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皮肤,这给了我的按钮一些悬停、选择等属性。,我如何通过按钮上的新外观定义我自己的?我是否可以为我的按钮栏定义新属性,以便不受外观中声明的属性的影响,或者我是否必须更改该外观中的某些内容,以及如何做到这一点

事先非常感谢你的帮助

  • 的确如此。requireSelection=“true”
  • ButtonBar扩展列表,因此设置selectedIndex属性应该有效
  • 我不太清楚您的意思,但您可以使用css更改按钮栏中按钮的外观:

    s|按钮按钮{ 皮肤类:ClassReference(“my.skin.class”); }

  • 或者,您可以通过创建自己的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,问题1已回答!这是s:ButtonBar的requireSelection=“true”属性。非常感谢您的回答!关于第三个,我的意思是:我在我的应用程序中应用了一个主题,它在许多组件中都有自己的特点,比如按钮、列表、,buttonbar等外观,我的问题是,尽管主题仍然通过css在我的应用程序中设置,我是否可以在一些组件(如buttons或buttonbarButton)上添加我自己的特征,或者创建我自己的样式?它将应用于这些组件还是我应该禁用主题?Spark按钮上的皮肤设置(设置在您的主css文件中?)不应该影响ButtonBar中的按钮,因为这些是切换按钮,它们需要单独的皮肤。此外,这些ButtonBar按钮的皮肤在ButtonBarSkin中设置,因此为ToggleButtons设置“全局”皮肤也不会影响ButtonBar按钮。你应该在自定义按钮背景中设置它们,如上图所示。这不是皮肤,这是flash builder提供的主题,我已经在我的应用程序中应用了一个并更改了许多组件,特别是GraphiteGraphical主题…我的问题是:我应该找到它的文件在哪里并更改我要更改的特定组件吗(比如说按钮)或者如果我创建了一个新的皮肤,并将其应用于一个按钮上,则其强度(皮肤)比主题中定义的属性更清楚?希望更清楚…哦,对了。我不熟悉这些主题,所以我不太清楚。你可以尝试上面的方法,或者你可以尝试在单独的问题中问这个问题,但这里一定有人可以帮你:)