3

我不知道为什么,但我看到菜单栏上的 itemclick 事件不会触发,除非您单击子项。

什么是处理对顶层且没有子菜单项的菜单项的点击的干净方法。

例如,我想在单击 MenuItem B 时触发一个事件。

<?xml version="1.0"?>
<!-- menus/MenuBarControl.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >

    <mx:MenuBar id="myMenuBar" labelField="@label" itemClick="{itemClick(event)}" >
        <mx:XMLList>
            <menuitem label="MenuItem A">
                <menuitem label="SubMenuItem A-1"/>
                <menuitem label="SubMenuItem A-2"/>
            </menuitem>
            <menuitem label="MenuItem B"/>
        </mx:XMLList>
    </mx:MenuBar>
</mx:Application>
4

3 回答 3

3

猜猜这会有所帮助,

protected function myMenuBar_clickHandler(event:MouseEvent):void
        {
            // TODO Auto-generated method stub
            stackIndex=event.target.data.@index;
        }

protected function myMenuBar_itemClickHandler(event:MenuEvent):void
        {
            // TODO Auto-generated method stub
            stackIndex=event.item.@index;
        }

F以下菜单栏,

<mx:MenuBar id="myMenuBar" labelField="@label" click="myMenuBar_clickHandler(event)" itemClick="myMenuBar_itemClickHandler(event)" >   
    <mx:XMLList>   
        <menuitem label="MenuItem A" index="0">   
            <menuitem label="SubMenuItem A-1" index="0-0"/>   
            <menuitem label="SubMenuItem A-2" index="0-1"/>   
        </menuitem>   
        <menuitem label="MenuItem B" index="1"/>   
    </mx:XMLList>   
</mx:MenuBar>  

在这里,我还添加了一个属性“索引”。作为 XML,我们可以在其中添加任何元素,除了一些关键字。

“ItemClick” 事件将处理子项,“Click” 将处理顶级菜单栏项(父项)。

希望这可以帮助。

问候, 普拉卡什

于 2010-10-20T14:17:54.963 回答
1

此行为是设计使然。想想它是否是浏览器中的菜单栏:单击文件、编辑、查看等顶级项目只会显示弹出窗口,它们不会触发任何操作。

livedocs 页面MenuBar

控件定义了一个MenuBar水平的顶级菜单栏,其中包含一个或多个菜单项。单击顶级菜单项会打开一个弹出子菜单,该子菜单是 Menu 控件的一个实例。

控件的顶级菜单栏MenuBar通常始终可见。它不能用作弹出菜单。当用户使用鼠标或键盘选择它们时,会弹出各个子菜单。

如果您必须在顶级项目单击上执行某些操作,请侦听 上的click事件MenuBar并遍历搜索parent链,这是 a的顶级项目的默认项目渲染器event.targetMenuBarItemMenuBar

于 2010-03-11T10:27:03.037 回答
0

flex 开箱即用的菜单栏有很多限制。例如,我不能有一个嵌套的子菜单,比如 top_menu -level 1 menu -level 2 menu -level 3 menu..... 为了解决这个问题,需要添加一个每个子菜单中的额外菜单确实很痛苦。

于 2010-05-13T00:49:39.710 回答