0

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

<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 有一个图像而不是一个标签(即一个星星或心脏的图像,而不是'Favorites' 这个词)。我尝试使用 NavigatorContent 上的“图标”属性,但无济于事。

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

谢谢!
J.P

4

1 回答 1

0

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

以下是这两种方法的示例:

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

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

请注意,还有其他几种嵌入图像的方法,它们都应该可以工作……我在这里展示的示例是最简单的:)

于 2012-12-27T23:30:38.640 回答