Flex的菜单大致有三种形式:菜单控件(Menu),菜单栏控件(MenuBar),弹出式按钮菜单控件(PopUpButtonMenu)
Menu 控件创建可分别选择的选项的弹出菜单,此弹出菜单类似于大多数软件应用程序中的“文件”或“编辑”菜单。弹出菜单可以具有所需的任何数目的子菜单级别。打开 Menu 控件后,此控件将一直可见,直到通过下列任一操作将其关闭:
Menu 类没有对应的 MXML 标签。必须使用 ActionScript 创建它。下面就是一个简单的例子,单击按钮后酒后弹出菜单。
对于这三种菜单的详细介绍请看API。
<?xml version="1.0"?>
<!-- binding/SimpleObjectBinding.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" >
<mx:Script>
<![CDATA[
import mx.controls.Button;
private var myMenu:Menu;
import mx.controls.Menu; //引入菜单
import mx.events.MenuEvent; //引入菜单事件
private var menuPoint:Point=new Point();
public var menu:XML;
public function showMenu():void{
menu=
<root>
<menuitem itemShowName="发消息" eventName="message"/>
<menuitem itemShowName="联系人信息" eventName="contactInfo"/>
<menuitem itemShowName="修改备注姓名" eventName="insertNote"/>
<menuitem itemShowName="移动到" eventName="moveTo" />
<menuitem itemShowName="添加进黑名单" eventName="intoBlack"/>
<menuitem itemShowName="删除好友" eventName="deleteUser"/>
</root>
this.myMenu=Menu.createMenu(this,menu,false);
myMenu.labelField="@itemShowName"
myMenu.addEventListener("itemClick", menuHandler);
menuPoint.x=b.mouseX;
menuPoint.y=b.mouseY;
menuPoint=b.localToGlobal(menuPoint);
myMenu.show(menuPoint.x, menuPoint.y); //在鼠标处(通过坐标计算得到)显出菜单
}
public function menuHandler():void{
}
]]>
</mx:Script>
<mx:Button id="b" label="Change myObj" click="showMenu()"/>
</mx:Application>