управление строкой меню в flex, необходимое для обработки отдельного метода для отдельного пункта меню - PullRequest
1 голос
/ 26 июня 2009

Мне нужно запустить отдельный метод для отдельного элемента меню, по которому щелкают, чтобы отдельный элемент мог обрабатывать отдельный метод.

и мне нужно знать, какие все свойства доступны в пункте меню, например 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>

Можете ли вы привести ссылку или пример для управления меню?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 июня 2009

Vineth,

Невозможно добавить отдельные обработчики событий для элементов меню, если вы динамически не создаете строку меню и вложенные элементы. Это более болезненно, чем стоит, поэтому я бы рекомендовал использовать обработчик itemCLick, как указано выше, и использовать переключатель, чтобы определить, какие методы использовать. Например:

switch( event.item.@data ){

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

}

Примечание: это строит из ответа zdmytriv

0 голосов
/ 26 июня 2009

Пример из документов Adobe Flex Панель меню

Допускаются только три типа: чек, радио или разделитель.

<?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 (event.item.@data != "top") {
                    Alert.show("Label: " + event.item.@label + "\n" + 
                        "Data: " + event.item.@data, "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>

Также добавьте эту страницу в закладки Справочник по языку .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...