2011-02-02 119 views
0

我有一個<mx:TabNavigator>它有一些<s:NavigatorContent>標籤爲兒童。我希望標籤在點擊它們時發送一個事件。我嘗試了NavigatorContent中的「click」事件,但它沒有做任何事情。任何人有任何經驗呢? 謝謝flex tabnavigator選項卡單擊事件

回答

2
+0

感謝布賴恩.the改變事件分派標籤變化時。但我想要一種方式來將該選項卡當作按鈕,並直接給它一個事件(如果有辦法做到的話) – m0j1 2011-02-02 12:13:10

+0

我通過使用change事件並檢查TabNavigator的selectedIndex屬性來做了我想做的事情。但我仍然在尋找更合適的方式 – m0j1 2011-02-02 14:54:52

2

嗨 我相信使用Show事件可能會做你想要什麼:

它是從ViewStack容器繼承?

我想要一個事件觸發特定顯示時,我想爲我的tabnavigator的每個navigatorcontent不同的行動。

希望它可以幫助別人:)

+0

可以請您嘗試在NavigatorContent上展示一個展示事件的例子嗎? – toxicate20 2012-11-26 12:15:59

1
<mx:Module> 
    <mx:TitleWindow id="tw" creationComplete="{init();}"> 
     <mx:Script> 
      <![CDATA[ 
       import mx.controls.Button; 
       import mx.events.FlexEvent; 
       private function init():void { 
        for (var i:int=0; i<tabNav.getChildren().length; i++) 
        { 
         var tab:Button = tabNav.getTabAt(i); 
         tab.addEventListener(FlexEvent.BUTTON_DOWN,tabClickHandler); 
        } 
       } 
       private function onClickTab(event:Event):void { 
        tw.title="onClickTab:"+event.target; 
       } 
       private function tabClickHandler(event:FlexEvent):void { 
        for (var i:int=0; i<tabNav.getChildren().length; i++) 
        { 
         if (event.target == tabNav.getTabAt(i)) { 
          var child:Object = tabNav.getChildAt(i); 
          child.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
          break; 
         } 
        } 
       } 
      ]]> 
     </mx:Script> 
     <mx:TabNavigator id="tabNav" width="200" height="200"> 
      <mx:VBox id="vbTab1" label="Tab 1" click="onClickTab(event)"> 
      </mx:VBox> 
      <mx:VBox id="vbTab2" label="Tab 2" click="onClickTab(event)"> 
      </mx:VBox> 
     </mx:TabNavigator> 
    </mx:TitleWindow> 
</mx:Module>