메뉴 이벤트 처리

Flash Player 9 이상, Adobe AIR 1.0 이상

사용자가 메뉴를 선택하거나 메뉴 항목을 선택할 때 메뉴에서 이벤트를 전달합니다.

메뉴 클래스에 대한 이벤트 요약

메뉴나 개별 항목에 메뉴 이벤트를 처리할 이벤트 리스너를 추가합니다.

객체

전달되는 이벤트

NativeMenu(AIR)

Event.PREPARING(Adobe AIR 2.6 이상)

Event.DISPLAYING

Event.SELECT(자식 항목 및 하위 메뉴에서 전달)

NativeMenuItem(AIR)

Event.PREPARING(Adobe AIR 2.6 이상)

Event.SELECT

Event.DISPLAYING(부모 메뉴에서 전달)

ContextMenu

ContextMenuEvent.MENU_SELECT

ContextMenuItem

ContextMenuEvent.MENU_ITEM_SELECT

Event.SELECT(AIR)

Select 메뉴 이벤트

메뉴 항목에 대한 클릭을 처리하려면 NativeMenuItem 객체에 select 이벤트에 대한 이벤트 리스너를 추가합니다.

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

select 이벤트는 포함하는 메뉴로 버블링되므로 부모 메뉴의 select 이벤트도 수신할 수 있습니다. 메뉴 레벨에서 수신할 경우 이벤트 객체 target 속성을 사용하여 선택된 메뉴 명령을 확인할 수 있습니다. 다음 예제에서는 선택된 명령의 레이블을 추적합니다.

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

ContextMenuItem 클래스를 사용할 경우 select 이벤트 또는 menuItemSelect 이벤트를 수신할 수 있습니다. menuItemSelect 이벤트는 컨텍스트 메뉴를 소유하는 객체에 대한 추가 정보를 제공하지만 포함하는 메뉴로 버블링되지 않습니다.

Displaying 메뉴 이벤트

메뉴 열기를 처리하려면 메뉴가 표시되기 전에 전달되는 displaying 이벤트에 대한 리스너를 추가할 수 있습니다. Displaying 이벤트를 사용하면 메뉴를 업데이트할 수 있습니다. 예를 들어 항목을 추가 또는 제거하거나 개별 항목의 활성화 또는 선택 상태를 업데이트할 수 있습니다. ContextMenu 객체에서 menuSelect 이벤트를 수신할 수도 있습니다.

AIR 2.6 이상의 버전에서는 preparing 이벤트를 통해 키보드 단축키를 사용한 메뉴 표시 또는 항목 선택에 대한 응답으로 메뉴를 업데이트할 수 있습니다.