Umgang mit Menüereignissen

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Ein Menü löst Ereignisse aus, wenn der Benutzer das Menü oder ein Menüelement auswählt.

Ereigniszusammenfassung für Menüklassen

Fügen Sie Menüs oder einzelnen Elementen Listener für den Umgang mit Menüelementen hinzu.

Object

Ausgelöste Ereignisse

NativeMenu (AIR)

Event.PREPARING (Adobe AIR 2.6 und höher)

Event.DISPLAYING

Event.SELECT (aus untergeordneten Elementen und Untermenüs übertragen)

NativeMenuItem (AIR)

Event.PREPARING (Adobe AIR 2.6 und höher)

Event.SELECT

Event.DISPLAYING (aus dem übergeordneten Menü übertragen)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT (AIR)

Auswählen von Menüereignissen

Fügen Sie dem NativeMenuItem einen Listener für das select -Ereignis hinzu, um einen Klick auf ein Menüelement zu verarbeiten:

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

Da sich select -Ereignisse nach oben durch die Menüs, in denen sie enthalten sind, fortsetzen, können Sie auch in einem übergeordneten Menü einen Listener für diese Ereignisse verwenden. Beim Überwachen auf der Menüebene können Sie mithilfe der target -Eigenschaft des Ereignisobjekts ermitteln, welcher Menübefehl ausgewählt wurde. Im folgenden Beispiel wird die Bezeichnung des ausgewählten Befehls verfolgt:

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

Wenn Sie die ContextMenuItem-Klasse verwenden, können Sie entweder das select - oder das menuItemSelect -Ereignis überwachen. Das menuItemSelect -Ereignis liefert zusätzliche Informationen zum Objekt, zu dem das Kontextmenü gehört, wird aber nicht nach oben durch die Menüs, in denen es enthalten ist, fortgesetzt.

Anzeigen von Menüereignissen

Sie können für das displaying -Ereignis, das ausgelöst wird, bevor ein Menü angezeigt wird, einen Listener hinzufügen, der das Öffnen des Menüs übernimmt. Mit dem displaying-Ereignis können Sie das Menü aktualisieren, indem Sie beispielsweise Elemente hinzufügen oder entfernen oder den enabled- oder checked-Status der individuellen Elemente aktualisieren. Sie können auch das menuSelect -Ereignis von einem ContextMenu-Objekt überwachen.

In AIR 2.6 und höher können Sie das preparing -Ereignis verwenden, um ein Menü zu aktualisieren, nachdem der Benutzer ein Menü angezeigt oder ein Menüelement über einen Tastaturbefehl ausgewählt hat.