Adobe Flex 3 ヘルプ

MenuBar コントロール

MenuBar コントロールでは、最上位のメニューを水平なメニューバーとして表示します。メニューバーのそれぞれのアイテムは、サブメニューをポップアップで表示できます。MenuBar コントロールは、Menu コントロールと同じ方法でデータプロバイダを解釈し、Menu コントロールと同じイベントをサポートします。ただし、Menu コントロールとは異なり、MenuBar コントロールは静的です。つまり、ポップアップメニューとしては機能せずに、アプリケーション上に常に表示されます。MenuBar は静的なので、MXML に直接定義できます。

詳細については、『Adobe Flex リファレンスガイド』を参照してください。Menu コントロールの詳細については、Menu コントロールのイベントを参照してください。

MenuBar コントロールについて

次の例は MenuBar コントロールです。

MenuBar ÉRÉìÉgÉçÅ[Éã

このコントロールは、データプロバイダメニューの最上位のラベルを示しています。ユーザーが最上位のメニューアイテムを選択すると、MenuBar コントロールはサブメニューを開きます。ユーザーが他の最上位メニューアイテムを選択するか、サブメニューアイテムを選択するか、MenuBar の領域外をクリックするまで、サブメニューは表示されたままになります。

MenuBar コントロールの作成

MXML では MenuBar コントロールを <mx:MenuBar> タグで定義します。MXML アプリケーションの他の場所(他のタグまたは ActionScript ブロック)にあるコンポーネントを参照する場合は、id の値を指定します。

MenuBar コントロールのデータは、dataProvider プロパティで指定します。MenuBar コントロールでは、Menu コントロールと同じタイプのデータプロバイダを使用します。Menu コントロールと MenuBar コントロールに使用するデータプロバイダの詳細については、メニューの構造とデータの定義を参照してください。階層データプロバイダの詳細については、階層データオブジェクトを参照してください。

MenuBar コントロールを作成する単純なケースでは、<mx:XML> タグまたは <mx:XMLList> タグと標準的な XML ノードシンタックスを使用して、メニューのデータプロバイダを定義する場合があります。XML ベースのデータプロバイダを使用する場合は、次の規則に注意してください。

  • <mx:XML> タグを使用する場合は単一のルートノードが必要で、MenuBar コントロールの showRoot プロパティを false に設定します。このように設定しない場合、MenuBar にはルートのみがボタンとして表示されます。<mx:XMLList> タグを使用する場合は XML ノードのリストを定義し、最上位ノードでメニューバーのボタンを定義します。
  • データプロバイダにラベル属性がある場合、それが「label」という名前であっても、次の例のように MenuBar コントロールの labelField プロパティを設定して、ラベルに E4X の @ 表記を使用する必要があります。
    labelField=如labelî
    
    

dataProvider プロパティは MenuBar コントロールのデフォルトプロパティです。そのため次の例のように、XML オブジェクトまたは XMLList オブジェクトを <mx:MenuBar> tag の直接の子として定義できます。

<?xml version="1.0"?>
<!-- menus/MenuBarControl.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >

    <!-- Define the menu; dataProvider is the default MenuBar property.
      Because this uses an XML data provider, specify the labelField and
      showRoot properties. -->
    <mx:MenuBar id="myMenuBar" labelField="@label">
        <mx:XMLList>
            <menuitem label="MenuItem A">
                <menuitem label="SubMenuItem A-1" enabled="false"/>
                <menuitem label="SubMenuItem A-2"/>
            </menuitem>
            <menuitem label="MenuItem B"/>
            <menuitem label="MenuItem C"/>
            <menuitem label="MenuItem D">
                <menuitem label="SubMenuItem D-1" 
                    type="radio" groupName="one"/>
                <menuitem label="SubMenuItem D-2" 
                    type="radio" groupName="one"
                    selected="true"/>
                <menuitem label="SubMenuItem D-3" 
                    type="radio" groupName="one"/>
            </menuitem>
        </mx:XMLList>
    </mx:MenuBar>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

MenuBar コントロールの最上位ノードは、メニューバーのボタンになります。したがって、この例の MenuBar コントロールでは、前の図のように 4 つのラベルが表示されます。

XML データ内のノードタグには、どのような名前でも割り当てられます。前の例では、汎用タグの <menuitem> を使用してノードに名前を付けていますが、<node><subNode><person><address> なども使用できます。type 属性など、MenuBar コントロールにとって意味のある属性またはフィールドがいくつかあります。Flex によるデータプロバイダのデータの解釈方法と使用方法については、メニュー項目情報の指定と使用を参照してください。

MenuBar コントロールのユーザー操作

MenuBar コントロールのユーザの操作は Menu コントロールとほとんど同じですが、次の違いがあります。MenuBar コントロールにフォーカスがある場合、左矢印を押すと前のメニューが開きます。現在のメニューバーのアイテムに閉じたポップアップメニューがある場合、右向き矢印を押すと現在のメニューが開きます。ポップアップメニューが開いている場合は、左向き矢印で次のメニューが開きます。この動作は、MenuBar コントロールの端に達すると反対の端に戻ります。

詳細については、Menu コントロールのユーザー操作を参照してください。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート