Gestion des événements de menu

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Un menu distribue des événements lorsque l’utilisateur sélectionne le menu ou l’un de ses éléments.

Récapitulatif des événements associés aux classes de menu

Ajoutez des écouteurs d’événement à des menus ou à des éléments individuels pour gérer les événements de menu.

Object

Evénements distribués

NativeMenu (AIR)

Event.PREPARING (Adobe AIR 2.6 et les versions ultérieures)

Event.DISPLAYING

Event.SELECT (propagé à partir des sous-menus et éléments enfant)

NativeMenuItem (AIR)

Event.PREPARING (Adobe AIR 2.6 et les versions ultérieures)

Event.SELECT

Event.DISPLAYING (propagé à partir du menu parent)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT (AIR)

Evénements de menu select

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.

Evénements de menu displaying

Pour gérer l’ouverture d’un menu, vous pouvez ajouter un événement displaying , qui est distribué avant l’affichage d’un menu. L’événement displaying permet de mettre à jour le menu, par exemple en ajoutant ou supprimant des éléments, ou en actualisant l’état, activé ou coché, d’éléments individuels. Vous pouvez également écouter l’événement menuSelect à partir d’un objet ContextMenu.

Dans AIR 2.6 et les versions ultérieures, vous disposez de l’événement preparing pour mettre à jour un menu en réponse à l’affichage d’un menu ou à la sélection d’une option par le biais d’un raccourci clavier.