<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" >
<fx:Declarations>
<!--xml 方式将root不显示需要设置MenuBar的showRoot属性为false-->
<fx:XML format="e4x" id="myMenuData">
<root >
<menuitem label="MenuItem A" icon="myTopIcon">
<menuitem label="SubMenuItem A-1" enabled="False" fun="copy"/>
<menuitem label="SubMenuItem A-2" fun="open"/>
</menuitem>
<menuitem label="MenuItem B" type="check" toggled="true"/>
<menuitem label="MenuItem C" type="check" toggled="false" icon="myTopIcon"/>
<menuitem type="separator"/>
<menuitem label="MenuItem D" icon="myTopIcon">
<menuitem label="SubMenuItem D-1" type="radio" groupName="one"/>
<menuitem label="SubMenuItem D-2" type="radio" groupName="one" toggled="true"/>
<menuitem label="SubMenuItem D-3" type="radio" groupName="one"/>
</menuitem>
</root>
</fx:XML>
<!--使用xmlList数据源方式-->
<fx:XMLList id="arr">
<menuitem label="MenuItem A" icon="myTopIcon">
<menuitem label="SubMenuItem A-1" enabled="False"/>
<menuitem label="SubMenuItem A-2" eventName="copy"/>
</menuitem>
<menuitem label="MenuItem B" type="check" toggled="true"/>
<menuitem label="MenuItem C" type="check" toggled="false" icon="myTopIcon"/>
<menuitem type="separator"/>
<menuitem label="MenuItem D" icon="myTopIcon">
<menuitem label="SubMenuItem D-1" type="radio" groupName="one"/>
<menuitem label="SubMenuItem D-2" type="radio" groupName="one" toggled="true"/>
<menuitem label="SubMenuItem D-3" type="radio" groupName="one"/>
</menuitem>
</fx:XMLList>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.events.MenuEvent;
[Bindable]
public var menuArray:Array = [
{label:"menuI",children:[
{label:"menuI-I",enabled:false},
{label:"menuI-II",enabled:true,type:"normal"}
]
},
{label:"menuII",toggled:false},
{label:"menuIII",toggled:true},
];
private function menuHandler(evt:MenuEvent):void {
this.callLater(this[evt.item.@fun]);
}
private function open():void {
Alert.show("call open command");
}
private function copy():void {
Alert.show("call copy command");
}
]]>
</fx:Script>
<mx:MenuBar id="myMenu" x="110" y="40" width="571" height="24"
dataProvider="{myMenuData}" labelField="@label"
itemClick="menuHandler(event)"
showRoot="false" >
</mx:MenuBar>
</s:Application>