Pour gérer un clic sur un élément de menu, ajoutez à l’objet NativeMenuItem un écouteur d’événement relatif à l’événement
select
:
var menuCommandX:NativeMenuItem = new NativeMenuItem("Command X");
menuCommandX.addEventListener(Event.SELECT, doCommandX)
Comme les événements
select
remontent jusqu’aux menus conteneur, vous pouvez aussi les écouter sur un menu parent. Lorsque vous écoutez au niveau d’un menu, vous pouvez utiliser la propriété
target
de l’objet événement pour déterminer la commande de menu sélectionnée. L’exemple suivant suit la trace du libellé de la commande sélectionnée :
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 vous utilisez la classe ContextMenuItem, vous pouvez écouter l’événement
select
ou
menuItemSelect
. L’événement
menuItemSelect
donne des informations complémentaires sur l’objet auquel appartient le menu contextuel, mais ne remonte pas jusqu’aux menus conteneur.