Hallo tabbar支持項目點擊事件。然而,spark tabBar不支持itemClick事件。火花tabbar中的itemclick事件?
有沒有辦法聽itemClick事件在SPARK的TabBar
感謝所有
Hallo tabbar支持項目點擊事件。然而,spark tabBar不支持itemClick事件。火花tabbar中的itemclick事件?
有沒有辦法聽itemClick事件在SPARK的TabBar
感謝所有
Spark組件從ListBase繼承不再派遣項目單擊事件。不過,您也可以使用IndexChangeEvent事件。它有一個屬性newIndex
,告訴你哪個是新選擇的項目(或在這個特定情況下的選項卡)。與老項目單擊
<s:TabBar dataProvider="{dp}" change="trace('selected: ' + event.newIndex)" />
一個大區別是,當所選擇的項目實際上改變了這一事件,才調度(而不是每次被點擊)。如果您確實需要返回ItemClick的行爲,則可以創建一個自定義的ItemRenderer,用於分派ItemClick事件 。
如果你想對每次點擊做出反應,有幾種方法。這裏有兩個:
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任何click事件,並使用event.target找到點擊標籤:
<s:TabBar dataProvider="{dp}" click="trace(event.target)" />
//traces tabBar.TabBarSkin1.dataGroup.TabBarButton1
請注意,這是一個直接回答你的問題,但我其實不認爲你應該這樣做。在大多數情況下,IndexChangeEvent.CHANGE會很好。
謝謝,我正在嘗試調度事件,無論用戶何時單擊tabbar。更改事件不會支持這種行爲。您能否詳細介紹一下itemrender如何幫助添加itemclik事件 – flex 2012-04-26 15:08:05
沒有。使用[IndexChangeEvent](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/events/IndexChangeEvent.html) – RIAstar 2012-04-26 14:54:44
Spark Tabar不支持indexChangeEvent – flex 2012-04-26 15:54:54
是的它確實:在'change'中MXML表示法實際上是一個'IndexChangeEvent.CHANGE'。 – RIAstar 2012-04-26 17:40:23