기본 메뉴 만들기 (AIR)

Adobe AIR 1.0 이상

이 항목에서는 AIR에서 지원하는 여러 유형의 기본 메뉴를 만드는 방법에 대해 설명합니다.

루트 메뉴 객체 만들기

메뉴의 루트로 사용할 NativeMenu 객체를 만들려면 NativeMenu 생성자를 사용합니다.

var root:NativeMenu = new NativeMenu(); 

응용 프로그램 및 윈도우 메뉴의 경우 루트 메뉴는 메뉴 표시줄을 나타내며 하위 메뉴를 여는 항목만 포함해야 합니다. 컨텍스트 메뉴와 팝업 메뉴에는 메모 표시줄이 없으므로 루트 메뉴에 하위 메뉴뿐 아니라 명령 및 분리 기호 선도 포함될 수 있습니다.

메뉴를 만든 후 메뉴 항목을 추가할 수 있습니다. 메뉴 객체의 addItemAt() 메서드를 사용하여 항목을 특정 인덱스에 추가하는 경우를 제외하고 메뉴의 항목은 추가되는 순서대로 표시됩니다.

다음 단원에 나와 있는 대로 메뉴를 응용 프로그램, 윈도우, 아이콘 또는 컨텍스트 메뉴로 할당하거나 팝업 메뉴로 표시합니다.

응용 프로그램 메뉴 설정 또는 윈도우 메뉴 설정

코드에서 응용 프로그램 메뉴(Mac OS에서 지원됨) 및 윈도우 메뉴(기타 운영 체제에서 지원됨)를 모두 수용할 수 있어야 합니다.

var root:NativeMenu = new NativeMenu(); 
if (NativeApplication.supportsMenu) 
{ 
    NativeApplication.nativeApplication.menu = root; 
} 
else if (NativeWindow.supportsMenu) 
{ 
    nativeWindow.menu = root; 
}
참고: Mac OS에서는 모든 응용 프로그램의 표준 항목이 포함된 메뉴를 정의합니다. NativeApplication 객체의 menu 속성에 새 NativeMenu 객체를 할당하면 표준 메뉴가 대체됩니다. 또한 표준 메뉴를 대체하지 않고 사용할 수도 있습니다.

Adobe Flex에서는 여러 플랫폼에서 작동하는 메뉴를 쉽게 만들 수 있도록 FlexNativeMenu 클래스를 제공합니다. Flex 프레임워크를 사용할 경우 NativeMenu 클래스 대신 FlexNativeMenu 클래스를 사용하십시오.

대화형 객체에서 컨텍스트 메뉴 설정

interactiveObject.contextMenu = root;

도크 아이콘 메뉴 설정 또는 시스템 트레이 아이콘 메뉴 설정

코드에서 응용 프로그램 메뉴(Mac OS에서 지원됨) 및 윈도우 메뉴(기타 운영 체제에서 지원됨)를 모두 수용할 수 있어야 합니다.

if (NativeApplication.supportsSystemTrayIcon) 
{ 
    SystemTrayIcon(NativeApplication.nativeApplication.icon).menu = root; 
} 
else if (NativeApplication.supportsDockIcon) 
{ 
    DockIcon(NativeApplication.nativeApplication.icon).menu = root; 
}
참고: Mac OS X에서는 응용 프로그램 도크 아이콘에 대한 표준 메뉴를 정의합니다. DockIcon 객체의 menu 속성에 새 NativeMenu를 할당하면 해당 메뉴의 항목이 표준 항목 위에 표시됩니다. 그러면 표준 메뉴 항목을 제거, 액세스 또는 수정할 수 없습니다.

메뉴를 팝업으로 표시

root.display(stage, x, y); 

하위 메뉴 만들기

하위 메뉴를 만들려면 부모 메뉴에 NativeMenuItem 객체를 추가한 다음 하위 메뉴를 정의하는 NativeMenu 객체를 항목의 submenu 속성에 할당합니다. AIR에서는 하위 메뉴 항목 및 이 항목과 연결된 메뉴 객체를 만드는 두 가지 방법을 제공합니다.

addSubmenu() 메서드를 사용하면 메뉴 항목 및 관련된 메뉴 객체를 하나의 단계로 만들 수 있습니다.

var editMenuItem:NativeMenuItem = root.addSubmenu(new NativeMenu(), "Edit"); 

또한 메뉴 항목을 만들고 해당 submenu 속성에 메뉴 객체를 별도로 할당할 수도 있습니다.

var editMenuItem:NativeMenuItem = root.addItem("Edit", false); 
editMenuItem.submenu = new NativeMenu(); 

메뉴 명령 만들기

메뉴 명령을 만들려면 메뉴에 NativeMenuItem 객체를 추가하고 메뉴 명령을 구현하는 함수를 참조하는 이벤트 리스너를 추가합니다.

var copy:NativeMenuItem = new NativeMenuItem("Copy", false); 
copy.addEventListener(Event.SELECT, onCopyCommand); 
editMenu.addItem(copy);

예제와 같이 명령 항목 자체에서 select 이벤트를 수신하거나 부모 메뉴 객체에서 select 이벤트를 수신할 수 있습니다.

참고: 하위 메뉴와 분리 기호 선을 나타내는 메뉴 항목은 select 이벤트를 전달하지 않으므로 명령으로 사용할 수 없습니다.

메뉴 분리 기호 선 만들기

분리 기호 선을 만들려면 생성자의 isSeparator 매개 변수를 true로 설정하여 NativeMenuItem을 만듭니다. 그런 다음 메뉴의 올바른 위치에 분리 기호 항목을 추가합니다.

var separatorA:NativeMenuItem = new NativeMenuItem("A", true); 
editMenu.addItem(separatorA);

분리 기호에 지정하는 레이블(있는 경우)은 표시되지 않습니다.