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.