메뉴 이벤트 처리
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 이벤트를 통해 키보드 단축키를 사용한 메뉴 표시 또는 항목 선택에 대한 응답으로 메뉴를 업데이트할 수 있습니다.