アプリケーションメニューまたはウィンドウメニューの作成

Adobe AIR 1.0 およびそれ以降

MenuBuilder フレームワークを使用してアプリケーションメニューまたはウィンドウメニューを作成すると、メニューデータ構造の最上位のオブジェクトまたはノードはメニューバーに表示されるアイテムに対応します。最上位のアイテム内にネストされたアイテムによって、各メニューコマンドが定義されます。それらのメニューアイテム内に他のアイテムが含まれる場合もあります。その場合、メニューアイテムはコマンドではなくサブメニューになります。ユーザーがメニューアイテムを選択すると、その中のメニューアイテムが展開されます。

呼び出しが実行されるウィンドウのアプリケーションメニューまたはウィンドウメニューとしてメニューを設定するには、 Menu.setAsMenu() メソッドを使用します。 setAsMenu() メソッドは、NativeMenu オブジェクトをパラメーターとして使用します。次の例では、XML ファイルを読み込み、生成されたメニューをアプリケーションメニューまたはウィンドウメニューとして設定します。

var windowMenu = air.ui.Menu.createFromXML("windowMenu.xml"); 
air.ui.Menu.setAsMenu(windowMenu);

ウィンドウメニューをサポートするオペレーティングシステムでは、 setAsMenu() 呼び出しにより、現在のウィンドウ( window.nativeWindow として示されるウィンドウ)のウィンドウメニューとしてメニューが設定されます。アプリケーションメニューをサポートするオペレーティングシステムでは、アプリケーションメニューとしてメニューが使用されます。

Mac OS X では、標準メニューのセットがデフォルトのアプリケーションメニューとして定義され、同じメニューアイテムのセットが各アプリケーションで使用されます。これらのメニューに含まれるアプリケーションメニューの名前は、アプリケーション名、編集メニューおよびウィンドウメニューと一致します。 Menu.setAsMenu() メソッドを呼び出して NativeMenu オブジェクトをアプリケーションメニューとして割り当てると、NativeMenu 内のアイテムが編集メニューとウィンドウメニューの間の標準メニュー構造内に追加されます。標準メニューは変更または置換されません。

必要に応じて、標準メニューに追加せずに標準メニューを置換することができます。既存のメニューを置き換えるには、次の例に示すように、二番目の引数に値 true を設定して setAsMenu() 呼び出しに渡します。

air.ui.Menu.setAsMenu(windowMenu, true);