Flash 在flex中运行时更改选项卡边框颜色

Flash 在flex中运行时更改选项卡边框颜色,flash,apache-flex,flex3,Flash,Apache Flex,Flex3,如何在运行时更改选项卡导航器控件中选项卡的边框颜色?我正试图用它的id“mytab”访问它,并更新它的样式 this.mytab.setStyle("bordercolor","red"); TabNavigator有多个选项卡,我必须根据一些逻辑更改几个选项卡的样式。StyleDeclaration适用于tab navigoter下的所有选项卡,但是如何使用基于组件的CSSSStyleDeclaration呢? 这种方法唯一的不足是不能为单个选项卡更改样式。直接在TabNavigator上设置

如何在运行时更改选项卡导航器控件中选项卡的边框颜色?我正试图用它的id“mytab”访问它,并更新它的样式

this.mytab.setStyle("bordercolor","red");
TabNavigator有多个选项卡,我必须根据一些逻辑更改几个选项卡的样式。StyleDeclaration适用于tab navigoter下的所有选项卡,但是如何使用基于组件的CSSSStyleDeclaration呢?
这种方法唯一的不足是不能为单个选项卡更改样式。

直接在
TabNavigator
上设置样式将不起作用。您必须在
TabNavigator
上设置
tabStyleName
属性,然后创建一个同名的样式,该样式将应用于选项卡。这与我们的战略是一样的;只需设置
边框颜色
样式即可


如果确实需要在运行时动态设置样式,可以检索选项卡的
CSSStyleDeclaration
,并按如下方式进行设置:

  <mx:Style>
    .tabStyle {
      /* define an empty style so there is something to get using getStyleDeclaration */
    }
  </mx:Style>

  <mx:Script>
    <![CDATA[
      protected function changeStyle(event:MouseEvent):void
      {
        var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".tabStyle");
        cssStyle.setStyle("borderColor", "red");
      }
    ]]>
  </mx:Script>

  <mx:TabNavigator id="mytab" width="200" height="200" tabStyleName="tabStyle">
    <mx:Canvas label="apple" width="100%" height="100%">
    </mx:Canvas>
    <mx:Canvas label="orange" width="100%" height="100%">
    </mx:Canvas>
    <mx:Canvas label="banana" width="100%" height="100%">
    </mx:Canvas>
  </mx:TabNavigator>

  <mx:Button x="10" y="218" label="Change Style!" click="changeStyle(event)"/>

.tabStyle{
/*定义一个空样式,这样就可以使用getStyleDeclaration获得一些东西*/
}

你能把mxml部分发到这里吗?@Wesely Petrowski谢谢。你完全正确。对于tab navigator,我必须首先设置CSSSTYLEDECLASSION。@Wesely Petrowski是否可以在tab navigator中获取特定选项卡的样式声明?基于组件id是否可能?