2009-06-26 21 views
1

クリックした個々のメニューアイテムに対して個別のメソッドを起動する必要があるため、個々のアイテムが個別のメソッドを処理できます。フレックスのメニューバーコントロール、個々のメニュー項目の別個のメソッドを処理する必要があります

と私は、すべてのプロパティがtype = "radio"のようなメニュー項目で利用できることを知る必要があります。

<mx:MenuBar id="jj" labelField="@label" itemClick="MenuItemClick(event)" x="23" y="228"> 
    <mx:XMLList> 
     <menuitem label="File"> 
      <menuitem label="New" type="radio"/> 
      <menuitem label="Open" data="Openfile" type="Check" /> 
      <menuitem label="Save" /> 
      <menuitem label="Exist"/> 
     </menuitem>   
    </mx:XMLList> 
</mx:MenuBar> 

メニューバーコントロールのリンクや例はありますか?

感謝のAdobe FlexのドキュメントMenuBar

許可のみ3種類から

答えて

0

例:チェック、ラジオ、またはセパレータ。

<?xml version="1.0"?> 
<!-- Simple example to demonstrate the MenuBar control. --> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initCollections();" > 

    <mx:Script> 
     <![CDATA[ 

      import mx.events.MenuEvent; 
      import mx.controls.Alert; 
      import mx.collections.*; 

      [Bindable] 
      public var menuBarCollection:XMLListCollection; 

      private var menubarXML:XMLList = 
       <> 
        <menuitem label="Menu1" data="top"> 
         <menuitem label="MenuItem 1-A" data="1A"/> 
         <menuitem label="MenuItem 1-B" data="1B"/> 
        </menuitem> 
        <menuitem label="Menu2" data="top"> 
         <menuitem label="MenuItem 2-A" type="check" data="2A"/> 
         <menuitem type="separator"/> 
         <menuitem label="MenuItem 2-B" > 
          <menuitem label="SubMenuItem 3-A" type="radio" 
           groupName="one" data="3A"/> 
          <menuitem label="SubMenuItem 3-B" type="radio" 
           groupName="one" data="3B"/> 
         </menuitem> 
        </menuitem> 
       </>; 

      // Event handler to initialize the MenuBar control. 
      private function initCollections():void { 
       menuBarCollection = new XMLListCollection(menubarXML); 
      } 

      // Event handler for the MenuBar control's itemClick event. 
      private function menuHandler(event:MenuEvent):void { 
       // Don't open the Alert for a menu bar item that 
       // opens a popup submenu. 
       if ([email protected] != "top") { 
        Alert.show("Label: " + [email protected] + "\n" + 
         "Data: " + [email protected], "Clicked menu item"); 
       }   
      } 
     ]]> 
    </mx:Script> 

    <mx:Panel title="MenuBar Control Example" height="75%" width="75%" 
     paddingTop="10" paddingLeft="10"> 

     <mx:Label width="100%" color="blue" 
      text="Select a menu item."/> 

     <mx:MenuBar labelField="@label" itemClick="menuHandler(event);" 
      dataProvider="{menuBarCollection}" /> 

    </mx:Panel> 
</mx:Application> 

さらに、このページをブックマークLanguage Reference

+0

ハイテクのオフに構築されます。私の要件は、個々のメニュー項目の個別のメソッドを呼び出すことです vineth

+0

はこのコントロールに適用できますか? – vineth

+0

イベントをMenuBarItem-sに割り当てる方法はありません。これは、dataProviderを通じてイベントをロードできるためです。 Shuaスイッチ/ケースの例を使用してください。 – zinovii

0

Vineth、

あなたが動的にメニューバーやサブアイテムを作成しない限り、メニュー項目の個々のイベントハンドラを追加することができません。これは価値があるよりも痛いので、上記のようにitemCLickハンドラを使用し、どのメソッドを起動するかを決定するスイッチを使用することをお勧めします。たとえば、次のように

switch([email protected]){ 

    case "3A": 
    doSomething(); 
    break; 
    case "3A": 
    doSomethingElse(); 
    break; 
    defualt: 
    doDefault(); 
    break; 

} 

注:これはzdmytriv答え

+0

こんにちは,,ありがとうu shua ...私はまた、この方法で現在行っています..メニューバーとサブアイテムのダイナミックな作成とイベントを処理する例がありますか? 残念ですが、私はそう考えている方が良いでしょう...メソッドを呼び出す代わりに、2つのメソッドを呼び出すので、そのメソッドが私にplsを提供していれば – vineth

+0

ちょっと、 私はしませんこれの実際の例がありますが、これはドキュメントを簡単に見てから私が集めたものです。私の最初のアプローチは、MenuBarItemのインスタンスを作成し、単にmenuBarのmenuBarItems配列に追加することですが、実際のドキュメントではアイテムをこのように追加するのではなく、menuBar dataProviderを更新するべきです。だから代わりに、おそらくちょうどmenuBarItems配列の各項目をループし、適切なリスナーを追加する必要があります。しかし、私はzdmytriv答えはベストプラクティスだと思います。呼び出されるメソッドの数がより良い解決策を決定するわけではありません。 – Shua

関連する問題