Para gestionar un clic en un elemento de menú, añada un detector de evento para el evento
select
al objeto NativeMenuItem:
var menuCommandX:NativeMenuItem = new NativeMenuItem("Command X");
menuCommandX.addEventListener(Event.SELECT, doCommandX)
Debido a que los eventos
select
se propagan a los menús que los contienen, también puede detectar eventos select en un menú principal. Cuando se detecta a nivel de menú, se puede utilizar la propiedad
target
del objeto de evento para determinar el comando de menú seleccionado. En el siguiente ejemplo se rastrea la etiqueta del comando seleccionado:
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");
}
Si se utiliza la clase ContextMenuItem, se puede detectar el evento
select
o el evento
menuItemSelect
. El evento
menuItemSelect
proporciona información adicional sobre el objeto propietario del menú contextual, pero no se propaga a los menús que lo contienen.