Flex/AIRでアプリを作る際に、ネイティブなメニューを作成する方法。

WindowsではWindow毎にメニューが存在するため、NativeWindow.supportsMenuの値がtrueになります。逆にMacではNativeApplication.supportsMenuがtrueになります。これを利用してNativeMenuのインスタンスを用意します。

//Windowsの場合
if(NativeWindow.supportsMenu) {
  var _menu:NativeMenu = new NativeMenu();
}

//Macの場合
if(NativeApplication.supportsMenu) {
  var _menu:NativeMenu = NativeApplication.nativeapplication.menu;
}

OSXではnativeapplication.menuを利用した場合に、デフォルトで用意される項目があります。よく使う「ファイル」や「編集」ですね。

この既存のメニューに項目を追加します。上記の方法でNativeMenuを用意した後で

var _item:NativeMenuItem = new NativeMenuItem("ほげほげ");
_menu.getItemAt(0).submenu.addItemAt(_item, 2);

とすると

となります。