处理菜单事件

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

当用户选择菜单时,或用户选择菜单项时,菜单将调度事件。

菜单类的事件摘要

将事件侦听器添加到菜单或个别项目来处理菜单事件。

Object

调度的事件

NativeMenu (AIR)

Event.PREPARING(Adobe AIR 2.6 和更高版本)

Event.DISPLAYING

Event.SELECT(从子项目和子菜单传播)

NativeMenuItem (AIR)

Event.PREPARING(Adobe AIR 2.6 和更高版本)

Event.SELECT

Event.DISPLAYING(从父菜单传播)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT (AIR)

选择菜单事件

若要处理菜单项上的单击,请将 select 事件的事件侦听器添加到 NativeMenuItem 对象:

var menuCommandX:NativeMenuItem = new NativeMenuItem("Command X"); 
menuCommandX.addEventListener(Event.SELECT, doCommandX)

因为 select 事件会上升到包含菜单,所以还可以在父菜单上侦听 select 事件。在菜单级别上侦听时,可以使用事件对象的 target 属性来确定选择了哪个菜单命令。以下示例跟踪所选命令的标签:

var colorMenuItem:NativeMenuItem = new NativeMenuItem("Choose a color"); 
var colorMenu:NativeMenu = new NativeMenu(); 
colorMenuItem.submenu = colorMenu; 
 
var red:NativeMenuItem = new NativeMenuItem("Red"); 
var green:NativeMenuItem = new NativeMenuItem("Green"); 
var blue:NativeMenuItem = new NativeMenuItem("Blue"); 
colorMenu.addItem(red); 
colorMenu.addItem(green); 
colorMenu.addItem(blue); 
 
if(NativeApplication.supportsMenu){ 
    NativeApplication.nativeApplication.menu.addItem(colorMenuItem); 
    NativeApplication.nativeApplication.menu.addEventListener(Event.SELECT, colorChoice); 
} else if (NativeWindow.supportsMenu){ 
    var windowMenu:NativeMenu = new NativeMenu(); 
    this.stage.nativeWindow.menu = windowMenu; 
    windowMenu.addItem(colorMenuItem); 
    windowMenu.addEventListener(Event.SELECT, colorChoice); 
} 
 
function colorChoice(event:Event):void { 
    var menuItem:NativeMenuItem = event.target as NativeMenuItem; 
    trace(menuItem.label + " has been selected"); 
} 

如果正在使用 ContextMenuItem 类,则可以侦听 select 事件或 menuItemSelect 事件。 menuItemSelect 事件可以提供有关拥有此上下文菜单的对象的其他信息,但不能上升到包含菜单。

显示菜单事件

若要处理菜单的打开,可以为 displaying 事件添加一个侦听器,在显示菜单之前将调度该侦听器。可以使用 displaying 事件更新菜单,例如,通过添加或删除项目,或通过更新个别项目的启用或选中状态。还可以从 ContextMenu 对象侦听 menuSelect 事件。

在 AIR 2.6 和更高版本中,可以使用 preparing 事件来更新菜单,以响应显示菜单或使用键盘快捷键选择项目。