Halloタブバーはアイテムクリックイベントをサポートします。しかし、spark tabBar doesnotはitemClickイベントをサポートしていません。spark tabbarのitemclickイベントですか?
はSPARKのタブバーでListBaseから継承すべて
Halloタブバーはアイテムクリックイベントをサポートします。しかし、spark tabBar doesnotはitemClickイベントをサポートしていません。spark tabbarのitemclickイベントですか?
はSPARKのタブバーでListBaseから継承すべて
Sparkコンポーネントは、もはやによってitemClickイベントを送出
おかげによってitemClickイベントを聞くことが方法です。ただし、代わりにIndexChangeEventイベントを使用することはできます。新しく選択されたアイテム(またはこの特定のケースではタブ)がどれであるかを示すプロパティnewIndex
があります。古いによってitemClickと
<s:TabBar dataProvider="{dp}" change="trace('selected: ' + event.newIndex)" />
一つの大きな違いは、選択した項目が実際に変化した場合(それがクリックされるたびにではなく)このイベントは唯一派遣されていることです。実際にItemClickの動作を元に戻す場合は、 ItemClickイベントを送出するカスタムItemRendererを作成できます。
クリックごとに反応したい場合は、いくつかの方法があります。
1./ItemClickイベントを送出するカスタムItemRendererを作成します。
。
<s:TabBar id="tabBar" dataProvider="{dp}"
itemRenderer="net.riastar.TabBarButton" />
tabBar.addEventListener(ItemClickEvent.ITEM_CLICK, onItemClick);
2 /別のアプローチは、ちょうどTabBarに上の任意のクリックイベントをリッスンし、クリックされたタブを見つけるために、event.targetを使用することです:あなたは今、このようにそれを使用することができます
public class TabBarButton extends ButtonBarButton {
override public function initialize():void {
super.initialize();
addEventListener(MouseEvent.CLICK, fireItemClick);
}
private function fireItemClick(event:MouseEvent):void {
owner.dispatchEvent(new ItemClickEvent(
ItemClickEvent.ITEM_CLICK, false, false, null, itemIndex, null, data
))
}
}
<s:TabBar dataProvider="{dp}" click="trace(event.target)" />
//traces tabBar.TabBarSkin1.dataGroup.TabBarButton1
これはあなたの質問に対する直接的な回答ですが、実際にはこれを行うべきではないと思います。ほとんどの場合、IndexChangeEvent.CHANGEはうまくいくでしょう。
ありがとうございます。ユーザーがタブバーをクリックするたびにディスパッチイベントを試行しています。変更イベントはこの種の動作をサポートしません。 itemclikイベントを追加する際にitemrenderがどのように役立つのですか – flex
[IndexChangeEvent](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/events/IndexChangeEvent.html) – RIAstar
を使用します。スパークタブはインデックスチェンジイベントをサポートしません – flex
はい、そうです: MXML記法は実際には 'IndexChangeEvent.CHANGE'です。 – RIAstar