Gestione degli eventi dei menu

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

Un menu invia gli eventi quando l'utente seleziona il menu o quando ne seleziona una voce.

Riepilogo degli eventi per classi di menu

Per gestire gli eventi dei menu, è possibile aggiungere listener di eventi ai menu o alle loro singole voci.

Object

Eventi inviati

NativeMenu (AIR)

Event.PREPARING (Adobe AIR 2.6 e versioni successive)

Event.DISPLAYING

Event.SELECT (propagato da voci e sottomenu secondari)

NativeMenuItem (AIR)

Event.PREPARING (Adobe AIR 2.6 e versioni successive)

Event.SELECT

Event.DISPLAYING (propagato dal menu principale)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT (AIR)

Eventi di selezione dei menu

Per gestire un clic su una voce di menu, aggiungete un listener di eventi per l'evento select all'oggetto NativeMenuItem:

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

Poiché gli eventi select possono propagarsi ai menu che li contengono, è possibile intercettare anche gli eventi select di un menu principale. Per intercettare a livello del menu, potete usare la proprietà target dell'oggetto evento per determinare quali comandi sono stati selezionati. Nel seguente esempio viene tracciata l'etichetta del comando selezionato:

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"); 
} 

Se usate la classe ContextMenuItem, potete intercettare l'evento select o l'evento menuItemSelect . L'evento menuItemSelect vi fornisce ulteriori informazioni sull'oggetto a cui è associato il menu di scelta rapida, ma non si propaga ai menu che lo contengono.

Eventi di visualizzazione dei menu

Per gestire l'apertura di un menu, potete aggiungere un listener per l'evento displaying , che viene inviato prima della visualizzazione del menu. Potete usare l'evento displaying per aggiornare il menu, ad esempio per aggiungere o rimuovere voci o per aggiornare gli stati enabled o checked delle singole voci. Potete anche applicare un listener per l'evento menuSelect da un oggetto ContextMenu.

In AIR 2.6 e versioni successive, potete usare l'evento preparing per aggiornare un menu in risposta alla visualizzazione di un menu o alla selezione di un elemento con una scelta rapida da tastiera.