Spark TabBar独特的标签

时间:2012-12-27 21:10:48

标签: actionscript-3 flex adobe mxml

我目前有以下设置(为简单起见而抽象):

<s:TabBar id="extentTypeTabBar" dataProvider="{vs}"/>
<mx:ViewStack id="vs">
    <s:NavigatorContent id="firstTab" label="Action">
        <!--content-->
    </s:NavigatorContent>
    <s:NavigatorContent id="secondTab" label="Adventure">
        <!--content-->
    </s:NavigatorContent>
    <s:NavigatorContent id="thirdTab" label="Favorites">
        <!--content-->
    </s:NavigatorContent>
</mx:ViewStack>

我希望thirdTab有一个图像而不是一个标签(即一个星星或心脏的图像,而不是“收藏夹”这个词)。我尝试使用NavigatorContent上的'icon'属性,但无济于事。

我相信要做到这一点我将不得不为Spark TabBar创建一个带有逻辑的自定义皮肤,因为我只想为一个标签而不是所有标签创建唯一的皮肤。有没有人有一个如何实现这个目标的例子?

谢谢!
JP

1 个答案:

答案 0 :(得分:0)

如果您使用icon对象的NavigatorContent属性,这应该可以正常工作。 icon属性的类型为Class,因此您必须为其提供表示嵌入图像或FXG对象的类。

以下是两种方法的示例:

<s:NavigatorContent icon="@Embed('favorite_icon.png')" /> <!-- embedded icon -->
<s:NavigatorContent icon="{FxgAsset}" /> <!-- fxg asset -->

为方便起见,我将图标放在项目的“默认包”中,只需更改图标的路径以匹配图标的位置即可。我在第二个示例中使用的FXG资产可以位于项目的任何位置。 FXG资产本质上是类,因此您不需要指定路径(您的IDE应该像任何其他类一样找到它)。

请注意,还有其他一些嵌入图像的方法,所有这些方法都应该有用......我在这里展示的示例最简单:)