Tworzenie rodzimych menu (AIR)

Adobe AIR 1.0 i starsze wersje

W tym rozdziale omówiono sposób tworzenia różnych typów rodzimych menu obsługiwanych w środowisku AIR.

Tworzenie głównego obiektu menu

Aby utworzyć obiekt NativeMenu, który będzie służył jako obiekt główny menu, należy użyć konstruktora NativeMenu:

var root:NativeMenu = new NativeMenu(); 

W menu aplikacji i okien menu główne reprezentowane jest przez pasek menu, który powinien zawierać tylko pozycje otwierające podmenu. Menu kontekstowe i menu podręczne nie mają paska menu, dlatego menu główne może zawierać polecenia, wiersze separatorów oraz podmenu.

Po utworzeniu menu można dodawać pozycje menu. Pozycje wyświetlane są w menu w kolejności, w jakiej zostały dodane chyba, że zostaną dodane w konkretnym miejscu za pomocą metody addItemAt() obiektu menu.

Przypisz menu do menu aplikacji, okna, ikony lub menu kontekstowe lub wyświetl je jako menu podręczne tak, jak zostało to przedstawione w poniższych sekcjach:

Ustawianie menu aplikacji lub menu okna

Kod aplikacji powinien uwzględniać zarówno menu aplikacji (obsługiwane w systemie Mac OS), jak i menu okien (obsługiwane w innych systemach operacyjnych)

var root:NativeMenu = new NativeMenu(); 
if (NativeApplication.supportsMenu) 
{ 
    NativeApplication.nativeApplication.menu = root; 
} 
else if (NativeWindow.supportsMenu) 
{ 
    nativeWindow.menu = root; 
}
Uwaga: System Mac OS definiuje menu zawierające standardowe pozycje dla każdej aplikacji. Przypisanie nowego obiektu NativeMenu do właściwości menu obiektu NativeApplication zastępuje standardowe menu. Można również użyć standardowego menu zamiast je zastępować.

Środowisko Adobe Flex udostępnia klasę FlexNativeMenu umożliwiającą łatwe tworzenie menu, które będą działać na różnych platformach. W przypadku korzystania z architektury Flex Framework należy używać klas FlexNativeMenu zamiast klasy NativeMenu.

Ustawianie menu kontekstowego dla interaktywnego obiektu

interactiveObject.contextMenu = root;

Ustawianie menu ikony Docku lub menu ikony zasobnika systemowego

Kod aplikacji powinien uwzględniać zarówno menu aplikacji (obsługiwane w systemie Mac OS), jak i menu okien (obsługiwane w innych systemach operacyjnych).

if (NativeApplication.supportsSystemTrayIcon) 
{ 
    SystemTrayIcon(NativeApplication.nativeApplication.icon).menu = root; 
} 
else if (NativeApplication.supportsDockIcon) 
{ 
    DockIcon(NativeApplication.nativeApplication.icon).menu = root; 
}
Uwaga: System Mac OS X definiuje menu standardowe dla ikony Docku aplikacji. Po przypisaniu nowego obiektu NativeMenu do właściwości menu obiektu DockIcon pozycje w menu są wyświetlane nad pozycjami standardowymi. Do pozycji standardowego menu nie można uzyskać dostępu, usunąć ich, ani zmodyfikować.

Wyświetlanie menu jako podręcznego

root.display(stage, x, y); 

Tworzenie podmenu

Aby utworzyć podmenu, należy dodać obiekt NativeMenuItem do menu nadrzędnego, a następnie przypisać obiekt NativeMenu definiujący podmenu do właściwości submenu pozycji. Środowisko AIR udostępnia dwa sposoby tworzenia pozycji podmenu i skojarzonych z nimi obiektów menu:

Użytkownik może utworzyć pozycję menu i powiązane z nią obiekty menu w pojedynczym kroku za pomocą metody addSubmenu() :

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

Można także utworzyć pozycję i przypisać obiekt menu do jej właściwości submenu oddzielnie:

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

Tworzenie polecenia menu

Aby utworzyć polecenie menu, należy dodać obiekt NativeMenuItem do menu, a następnie dodać detektor zdarzeń odwołujący się do funkcji implementującej polecenie menu:

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

Zdarzenie select można wykrywać bezpośrednio w pozycji polecenia (tak jak ilustruje to przykład) lub wykrywać zdarzenie select w nadrzędnym obiekcie menu.

Uwaga: Pozycje menu, które reprezentują podmenu i wiersze separatora, nie wywołują zdarzeń select i dlatego nie mogą być używane jako polecenia.

Tworzenie wiersza separatora menu

Aby utworzyć wiersze separatora, należy utworzyć obiekt NativeMenuItem, ustawiając w konstruktorze parametr isSeparator na wartość true . Następnie we właściwym położeniu należy dodać pozycję separatora do menu:

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

Etykieta określona dla separatora nie jest wyświetlana.