MenuBuilder の基本的なワークフロー

Adobe AIR 1.0 およびそれ以降

通常、MenuBuilder フレームワークでは、いずれの種類のメニューを作成する場合でも、3 つの手順に従います。

  1. メニュー構造の定義 メニュー構造を定義する XML または JSON を含むファイルを作成します。メニューの種類によっては、最上位アイテムはメニューになります(ウィンドウメニューやアプリケーションメニューの場合など)。他の種類のメニューでは、最上位アイテムは個別のメニューコマンドです(コンテキストメニューの場合など)。メニュー構造の定義形式について詳しくは、 MenuBuilder メニュー構造の定義 を参照してください。

  2. メニュー構造の読み込み 必要に応じてメニュークラスメソッドとして Menu.createFromXML() または Menu.createFromJSON() を呼び出し、メニュー構造ファイルを読み込んで実際のメニューオブジェクトとして解析します。いずれのメソッドからも NativeMenu オブジェクトが返されます。このオブジェクトをフレームワークのいずれかのメニュー設定メソッドに渡すことができます。

  3. メニューの割り当て メニューの用途に応じたメニュークラスメソッドを呼び出します。使用できるオプションは次のとおりです。

    • Menu.setAsMenu() ウィンドウメニューまたはアプリケーションメニューで使用

    • Menu.setAsContextMenu() DOM エレメントのコンテキストメニューとしてメニューを表示

    • Menu.setAsIconMenu() システムトレイまたはドックアイコンのコンテキストメニューとしてメニューを設定

コードを実行するタイミングが重要になります。特に、ウィンドウメニューは実際のオペレーティングシステムウィンドウが作成される前に割り当てる必要があります。ウィンドウメニューとしてメニューを設定する setAsMenu() 呼び出しは、 onload などのイベントハンドラーではなく、HTML ページで直接実行する必要があります。メニューを作成するコードは、オペレーティングシステムによってウィンドウが開かれる前に実行する必要があります。同時に、DOM エレメントを参照する setAsContextMenu() 呼び出しは、DOM エレメントの作成後に発生する必要があります。最も安全な方法としては、メニュー割り当てコードを含む <script> ブロックを HTML ページの最後の </body> タグの内側に挿入します。