MenuBar コントロールでは、最上位のメニューを水平なメニューバーとして表示します。メニューバーのそれぞれのアイテムは、サブメニューをポップアップで表示できます。MenuBar コントロールは、Menu コントロールと同じ方法でデータプロバイダを解釈し、Menu コントロールと同じイベントをサポートします。ただし、Menu コントロールとは異なり、MenuBar コントロールは静的です。つまり、ポップアップメニューとしては機能せずに、アプリケーション上に常に表示されます。MenuBar は静的なので、MXML に直接定義できます。
詳細については、『Adobe Flex リファレンスガイド』を参照してください。Menu コントロールの詳細については、Menu コントロールのイベントを参照してください。
次の例は MenuBar コントロールです。
このコントロールは、データプロバイダメニューの最上位のラベルを示しています。ユーザーが最上位のメニューアイテムを選択すると、MenuBar コントロールはサブメニューを開きます。ユーザーが他の最上位メニューアイテムを選択するか、サブメニューアイテムを選択するか、MenuBar の領域外をクリックするまで、サブメニューは表示されたままになります。
MXML では MenuBar コントロールを <mx:MenuBar> タグで定義します。MXML アプリケーションの他の場所(他のタグまたは ActionScript ブロック)にあるコンポーネントを参照する場合は、id の値を指定します。
MenuBar コントロールのデータは、dataProvider プロパティで指定します。MenuBar コントロールでは、Menu コントロールと同じタイプのデータプロバイダを使用します。Menu コントロールと MenuBar コントロールに使用するデータプロバイダの詳細については、メニューの構造とデータの定義を参照してください。階層データプロバイダの詳細については、階層データオブジェクトを参照してください。
MenuBar コントロールを作成する単純なケースでは、<mx:XML> タグまたは <mx:XMLList> タグと標準的な XML ノードシンタックスを使用して、メニューのデータプロバイダを定義する場合があります。XML ベースのデータプロバイダを使用する場合は、次の規則に注意してください。
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 コントロールのユーザの操作は Menu コントロールとほとんど同じですが、次の違いがあります。MenuBar コントロールにフォーカスがある場合、左矢印を押すと前のメニューが開きます。現在のメニューバーのアイテムに閉じたポップアップメニューがある場合、右向き矢印を押すと現在のメニューが開きます。ポップアップメニューが開いている場合は、左向き矢印で次のメニューが開きます。この動作は、MenuBar コントロールの端に達すると反対の端に戻ります。
詳細については、Menu コントロールのユーザー操作を参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート