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にラベルではなく画像(つまり、「お気に入り」という単語の代わりに星やハートの画像)を持たせたいと思っています。NavigatorContentの「icon」プロパティを使用してみましたが、役に立ちませんでした。

これを実現するには、すべてのタブではなく1つのタブのみを一意にスキンしたいので、SparkTabBarの背後にあるロジックを使用してカスタムスキンを作成する必要があると思います。誰かがこれを達成する方法の例を持っていますか?

ありがとう!
jp

4

1 に答える 1

0

オブジェクトのiconプロパティを使用する場合、これは問題なく機能するはずです。プロパティは として型指定されるため、埋め込み画像または FXG オブジェクトを表すクラスを指定する必要がありますNavigatorContenticonClass

両方の方法の例を次に示します。

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

便宜上、アイコンをプロジェクトの「デフォルト パッケージ」に入れます。アイコンの場所に合わせてアイコンへのパスを変更するだけです。2 番目の例で使用している FXG アセットは、プロジェクトのどこにでも配置できます。FXG アセットは本質的にクラスであるため、パスを指定する必要はありません (IDE は他のクラスと同様にパスを見つける必要があります)。

画像を埋め込む方法は他にもいくつかあることに注意してください。それらはすべて機能するはずです...ここで示した例は最も単純なものです:)

于 2012-12-27T23:30:38.640 に答える