2011-12-20 20 views
2

SuperTabNavigatorはFlexLibのオープンソースコンポーネントであり、Flex Tab Navigatorより優れているため、各タブの閉じるボタンからタブを閉じることができます。タブにSuperTabNavigatorを使用します。 Additinalyには、タブナビゲータの右側にあるボタンがあり、一度に開いているすべてのタブのリストが表示され、そのボタンからPopupButtonであるタブを選択できます。 何が起こるかは、タブを閉じると、PopupButtonドロップダウンリストから消えます。しかし、私の場合、閉じたタブを覚えていても、閉じたタブをクリックするとタブナビゲータで再び開くようにしたいのです。 私はFlexとActionSciptで比較的新しいですし、経験豊富なコーダー、チュートリアル、またはヒントからの助けを本当に感謝しています。私は私の仲間のフレックスコーダーのためにウェブ上でうまく文書化することを約束します。 :)Flex:SuperTabNavigatorのPopUpButtonのタブインデックスと名前を覚えておいてください。

ありがとうございます。

答えて

0

私は以前にスーパータブのナビゲータを使っていませんでしたが、クローズドタブを追跡しているプロジェクトをセットアップして、後で再オープンするオプションをユーザに与えました。

実際のタブに影響を与えずに閉じたタブを思い出す小さなドロップダウンメニューを作成する方法を理解できませんでした。だから、回避策として、ここでは、Flex SDK 3.6を使用して小さな単純なアプリケーションですが、私はあなたがそれを実行する必要が有用であることを期待しています...

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600" xmlns:ns="http://code.google.com/p/flexlib/"> 
    <mx:VBox> 
     <ns:SuperTabNavigator id="navigator" 
           width="500" 
           height="500" 
           tabClose="recordClosedTab(event)" 
           creationComplete="init()"> 
      <mx:Canvas label="one"/> 
      <mx:Canvas label="two"/> 
      <mx:Canvas label="three"/> 
     </ns:SuperTabNavigator> 
     <mx:HBox> 
      <mx:Label text="Closed tabs:"/> 
      <mx:ComboBox id="closedTabsMenu" 
         close="closedTabsMenuCloseHandler(event)"/> 
     </mx:HBox> 
    </mx:VBox> 

    <mx:Script> 
     <![CDATA[ 
      import flexlib.events.SuperTabEvent; 

      import mx.collections.ArrayCollection; 
      import mx.containers.Canvas; 
      import mx.events.DropdownEvent; 

      private var _closedTabs:ArrayCollection = new ArrayCollection(); 

      /** 
      * Records which display object has been removed from the SupreTabNavigator. 
      * Updates closed tabs menu data provider. 
      * 
      * @param SuperTabEvent.TAB_CLOSE dispatched from SuperTabNavigator when a tab close button is clicked. 
      * */ 
      private function recordClosedTab(event:SuperTabEvent):void{ 
       _closedTabs.addItem(navigator.getChildAt(event.tabIndex) as DisplayObject); 
       closedTabsMenu.dataProvider = _closedTabs; 
      } 

      /** 
      * Handles the close event dispatched from combo box on close. 
      * Checks if the SuperTabNavigator contains the item currently selected in combo box. 
      * If not then adds that object if it is a DisplayObject 
      * Then removes that item from combo box. 
      * 
      * @param DropdownEvent.CLOSE dispatched from the ComboBox on close 
      * */ 
      private function closedTabsMenuCloseHandler(event:DropdownEvent):void{ 
       var tabs:ArrayCollection = new ArrayCollection(navigator.getChildren()); 
       if (!tabs.contains(closedTabsMenu.selectedItem)){ 
        if (closedTabsMenu.selectedItem is DisplayObject){ 
         navigator.addChild(closedTabsMenu.selectedItem as DisplayObject); 
         _closedTabs.removeItemAt(_closedTabs.getItemIndex(closedTabsMenu.selectedItem)); 
        } 
       } 
      } 

     ]]> 
    </mx:Script> 
</mx:Application> 
関連する問題