Hallo タブバーは項目クリック イベントをサポートします。ただし、spark tabBar は itemClick イベントをサポートしていません。
SPARK TABBAR で itemclick イベントをリッスンする方法はありますか
皆さんありがとう
Hallo タブバーは項目クリック イベントをサポートします。ただし、spark tabBar は itemClick イベントをサポートしていません。
SPARK TABBAR で itemclick イベントをリッスンする方法はありますか
皆さんありがとう
ListBase から継承する Spark コンポーネントは、ItemClick イベントを送出しなくなりました。ただし、代わりにIndexChangeEventイベントを使用できます 。newIndex
新しく選択された項目 (この場合はタブ) を示すプロパティがあります。
<s:TabBar dataProvider="{dp}" change="trace('selected: ' + event.newIndex)" />
古い ItemClick との大きな違いの 1 つは、このイベントは、選択された項目が実際に変更されたとき (クリックされたときではなく) にのみ送出されることです。本当に ItemClick の動作を元に戻したい場合は、ItemClick イベントを送出するカスタム ItemRenderer を作成できます。
クリックするたびに反応したい場合は、いくつかの方法があります。そのうちの 2 つを次に示します。
1./ ItemClick イベントを送出するカスタム ItemRenderer を作成します。
.
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 id="tabBar" dataProvider="{dp}"
itemRenderer="net.riastar.TabBarButton" />
tabBar.addEventListener(ItemClickEvent.ITEM_CLICK, onItemClick);
2./ 別のアプローチは、TabBar のクリック イベントをリッスンし、event.target を使用してクリックされたタブを見つけることです。
<s:TabBar dataProvider="{dp}" click="trace(event.target)" />
//traces tabBar.TabBarSkin1.dataGroup.TabBarButton1
これはあなたの質問に対する直接的な回答ですが、実際にはこれを行うべきではないと思います。ほとんどの場合、IndexChangeEvent.CHANGE で十分です。