1

スパークドロップダウンリストがあり、それにカスタムスキンを適用して、ラベルの代わりに画像を表示しました。

<s:DropDownList id="id_cbLineType" 
                skinClass="assets.skins.SkinDropDownImageList"
                itemRenderer="spark.skins.spark.DefaultComplexItemRenderer"
                width="32"
                selectedIndex="0"
                borderAlpha="1"
                change="OnLineTypeChange(event)">
    <s:dataProvider>
        <s:ArrayList>
            <mx:Image source="@Embed('assets/images/mainToolbars/Straight.png')" />
            <mx:Image source="@Embed('assets/images/mainToolbars/Curved.png')" />
            <mx:Image source="@Embed('assets/images/mainToolbars/Angular.png')" />
        </s:ArrayList>
    </s:dataProvider>
</s:DropDownList>

画像を表示するためにカスタム スキンを適用しました。ここで、これらの画像のアップ、オーバー、ダウン、および無効化状態のさまざまな画像を表示したいと考えています。それを行う方法はありますか?

4

2 に答える 2

0

これらの状態でカスタム アイテム レンダラーを作成し、画像を表示する必要があります。データ プロバイダーで画像を使用する必要はなく、画像データ自体を使用する必要はありません。残りはアイテム レンダラーが行います。

于 2011-05-09T12:21:33.200 に答える
0

itemRenderer で up/over/down/disabled 状態を実装できるはずです。すべての画像を渡す必要があるため、おそらく dataProvider を変更する必要があります。MXML ではなく ActionScript で作成します。また、画像の代わりにオブジェクトを使用します。独自のカスタム オブジェクトを作成できます。

しかし、概念的には次のようなものです。

public var dp : ArrayCollection = new ArrayCollection([
 {upImage='assets/images/mainToolbars/Straight.png',downImage=,'assets/images/mainToolbars/Straight.png',disabledImage='assets/images/mainToolbars/Straight.png',overImage='assets/images/mainToolbars/Straight.png'},
]);

これはデータ プロパティとして itemRenderer に渡され、それらを使用して itemRenderer のスタイルを設定できます。

画像にリンクするだけでなく、画像を埋め込んでいるため。上記のサンプルで使用している文字列よりも少し多くのことを行う必要があります。

于 2011-05-09T12:22:05.967 に答える