处理菜单事件
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(从父菜单传播)
|
|
|
|
|
选择菜单事件
若要处理菜单项上的单击,请将
select
事件的事件侦听器添加到 NativeMenuItem 对象:
var menuCommandX = new NativeMenuItem("Command X");
menuCommand.addEventListener(air.Event.SELECT, doCommandX)
因为
select
事件会上升到包含菜单,所以还可以在父菜单上侦听 select 事件。在菜单级别上侦听时,可以使用事件对象的
target
属性来确定选择了哪个菜单命令。以下示例跟踪所选命令的标签:
var colorMenuItem = new air.NativeMenuItem("Choose a color");
var colorMenu = new air.NativeMenu();
colorMenuItem.submenu = colorMenu;
var red = new air.NativeMenuItem("Red");
var green = new air.NativeMenuItem("Green");
var blue = new air.NativeMenuItem("Blue");
colorMenu.addItem(red);
colorMenu.addItem(green);
colorMenu.addItem(blue);
if(air.NativeApplication.supportsMenu){
air.NativeApplication.nativeApplication.menu.addItem(colorMenuItem);
air.NativeApplication.nativeApplication.menu.addEventListener(air.Event.SELECT,
colorChoice);
} else if (air.NativeWindow.supportsMenu){
var windowMenu = new air.NativeMenu();
window.nativeWindow.menu = windowMenu;
windowMenu.addItem(colorMenuItem);
windowMenu.addEventListener(air.Event.SELECT, colorChoice);
}
function colorChoice(event) {
var menuItem = event.target;
air.trace(menuItem.label + " has been selected");
}
如果正在使用 ContextMenuItem 类,则可以侦听
select
事件或
menuItemSelect
事件。
menuItemSelect
事件可以提供有关拥有此上下文菜单的对象的其他信息,但不能上升到包含菜单。
显示菜单事件
若要处理菜单的打开,可以为
displaying
事件添加一个侦听器,在显示菜单之前将调度该侦听器。可以使用 displaying 事件更新菜单,例如,通过添加或删除项目,或通过更新个别项目的启用或选中状态。还可以从 ContextMenu 对象侦听
menuSelect
事件。
在 AIR 2.6 和更高版本中,可以使用
preparing
事件来更新菜单,以响应显示菜单或使用键盘快捷键选择项目。
|
|
|