Obsługa zdarzeń menu

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Menu wywołuje zdarzenia w momencie wybrania przez użytkownika menu lub wybrania pozycji menu.

Podsumowanie zdarzeń dla klas menu

Aby obsłużyć zdarzenia menu, należy dodać do menu detektory zdarzeń lub pojedyncze pozycje.

Object

Wywołane zdarzenia

NativeMenu (AIR)

Event.PREPARING (Adobe AIR 2.6 i nowsze wersje)

Event.DISPLAYING

Event.SELECT (propagowane z elementów podrzędnych i podmenu)

NativeMenuItem (AIR)

Event.PREPARING (Adobe AIR 2.6 i nowsze wersje)

Event.SELECT

Event.DISPLAYING (propagowane z menu nadrzędnego)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT (AIR)

Zdarzenia wybierania w menu

Aby obsłużyć kliknięcie pozycji menu, należy dodać do obiektu NativeMenuItem detektor zdarzeń dla zdarzenia select :

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

Ponieważ zdarzenia select są propagowane w menu, w którym się zawierają, dlatego można również wykrywać zdarzenia select menu nadrzędnych. Podczas wykrywania na poziomie menu użytkownik może korzystać z właściwości target obiektu zdarzenia w celu określenia, które polecenie menu zostało wybrane. Poniższy przykład ilustruje odrysowanie etykiety wybranego polecenia:

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

Jeśli używana jest klasa ContextMenuItem, możliwe jest wykrywanie zdarzenia select lub menuItemSelect . Zdarzenie menuItemSelect dostarcza dodatkowych informacji o obiekcie, do którego należy menu kontekstowe, ale nie propaguje ich do menu, w których się zawiera.

Zdarzenia displaying menu

Aby obsłużyć otwieranie menu, można dodać detektor dla zdarzenia displaying , które wywoływane jest przed wyświetleniem menu. Zdarzenia displaying można używać do aktualizowania menu, na przykład przez dodanie lub usunięcie pozycji albo aktualizację stanów enabled lub checked dla pojedynczych pozycji. Można także wykrywać zdarzenie menuSelect wywoływane z obiektu ContextMenu.

W środowisku AIR 2.6 i w nowszych wersjach można dzięki zdarzeniu preparing zaktualizować menu w odpowiedzi na jego wyświetlenie lub wybranie pozycji przy użyciu skrótu klawiaturowego.