Declarations:
<fx:XML format="e4x" id="myMenuData">
<root>
<menuitem label="MenuItem A">
<menuitem label="SubMenuItem A-1" type="check" toggled="true"/>
<menuitem type="separator"/>
<menuitem label="SubMenuItem A-2"/>
<menuitem label="SubMenuItem A-3">
<menuitem label="Sub-SubMenuItem A-3-1"/>
<menuitem label="Sub-SubMenuItem A-3-2" enabled="false"/>
<menuitem label="Sub-SubMenuItem A-3-3"/>
</menuitem>
</menuitem>
<menuitem label="MenuItemB">
<menuitem label="SubMenuItem B-1"/>
<menuitem label="SubMenuItem B-2"/>
</menuitem>
</root>
</fx:XML>
配置实现:
<s:menu>
<mx:FlexNativeMenu dataProvider="{myMenuData}"
labelField="@label"
showRoot="false"/>
</s:menu>
程序实现:
import mx.controls.Alert;
import mx.controls.Menu;
import mx.events.MenuEvent;
private var point1:Point = new Point();
private var myMenu:Menu;
// Create and display the Menu control.
private function showMenu():void
{
myMenu = Menu.createMenu(panel, myMenuData, false);
myMenu.labelField = "@label";
myMenu.addEventListener(MenuEvent.ITEM_CLICK, menuHandler);
// Calculate position of Menu in Application's coordinates.
point1.x = myButton.x;
point1.y = myButton.y;
point1 = myButton.localToGlobal(point1);
myMenu.show(point1.x + 25, point1.y + 25);
}
// Event handler for the Menu control's change event.
private function menuHandler(evt:MenuEvent):void
{
Alert.show("Label: " + evt.item.@label, "Clicked menu item");
}