我目前有以下设置(为简单起见而抽象):
<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
答案 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应该像任何其他类一样找到它)。
请注意,还有其他一些嵌入图像的方法,所有这些方法都应该有用......我在这里展示的示例最简单:)