Pour créer un objet NativeMenu en tant que racine du menu, utilisez le constructeur NativeMenu :
var root:NativeMenu = new NativeMenu();
Dans les menus d’application et de fenêtre, le menu racine représente la barre de menus et doit uniquement contenir des éléments donnant accès à des sous-menus. Les menus en incrustation et les menus contextuels ne possèdent pas de barre de menus. Le menu racine peut donc contenir des commandes et des séparateurs, ainsi que des sous-menus.
Une fois le menu créé, vous pouvez lui ajouter des éléments de menu. Les éléments figurent dans le menu dans l’ordre dans lequel vous les ajoutez, à moins que vous ne les ajoutiez à un index spécifique à l’aide de la méthode
addItemAt()
d’un objet menu.
Affectez le menu en tant que menu d’application, de fenêtre, d’icône ou contextuel ou affichez-le en tant que menu en incrustation, comme indiqué dans les sections suivantes :
Définition d’un menu d’application ou de fenêtre
Le code doit prendre en charge à la fois les menus d’application (gérés sous Mac OS) et les menus de fenêtre (gérés sous d’autres systèmes d’exploitation).
var root:NativeMenu = new NativeMenu();
if (NativeApplication.supportsMenu)
{
NativeApplication.nativeApplication.menu = root;
}
else if (NativeWindow.supportsMenu)
{
nativeWindow.menu = root;
}
Remarque :
Mac OS définit, pour chaque application, un menu contenant des éléments standard. L’affectation d’un nouvel objet NativeMenu à la propriété
menu
de l’objet NativeApplication remplace le menu standard. Libre à vous de conserver ce menu standard plutôt que de le remplacer.
Adobe Flex contient une classe FlexNativeMenu qui permet de créer facilement des menus pris en charge sur toutes les plateformes. Si vous utilisez Flex Framework, faites appel aux classes FlexNativeMenu au lieu de la classe NativeMenu.
Définition d’un menu contextuel associé à un objet interactif
interactiveObject.contextMenu = root;
Définition d’un menu d’icône du Dock ou d’un menu d’icône de la barre d’état système
Le code doit prendre en charge à la fois les menus d’application (gérés sous Mac OS) et les menus de fenêtre (gérés sous d’autres systèmes d’exploitation).
if (NativeApplication.supportsSystemTrayIcon)
{
SystemTrayIcon(NativeApplication.nativeApplication.icon).menu = root;
}
else if (NativeApplication.supportsDockIcon)
{
DockIcon(NativeApplication.nativeApplication.icon).menu = root;
}
Remarque :
Mac OS X définit un menu standard pour l’icône du Dock d’une application. Lorsque vous affectez un nouvel objet NativeMenu à la propriété menu de l’objet DockIcon, les éléments de ce menu sont affichés au-dessus des éléments standard. Il est impossible de supprimer ou de modifier les éléments standard ou d’y accéder.
Affichage d’un menu en incrustation
root.display(stage, x, y);