废话不用多说,只需下面几句简单代码就可以创建出功能完整的右键菜单
//构造右键菜单对象 var nativeMenu:CNativeMenuBuilder=new CNativeMenuBuilder(this.flashContainer); //添加action到该右键菜单对象中 nativeMenu.addAction(this.copyAction); nativeMenu.addAction(this.pasteAction); nativeMenu.addAction(this.aboutAction); /**使用CMenuRelation对象组织菜单*/ //创建关于菜单,并添加aboutAction菜单项 var relAbout:CMenuRelation=new CMenuRelation("关于"); relAbout.actions=[this.aboutAction.actionId]; //创建操作菜单,并添加pasteAction与copyAction两个菜单项 var relOper:CMenuRelation=new CMenuRelation("操作"); relOper.actions=[this.pasteAction.actionId,this.copyAction.actionId]; //将关于菜单与操作菜单添加进顶层菜单 var relMenu:CMenuRelation=new CMenuRelation();//顶层菜单的label属性一定要为null relMenu.actions=[relOper,"-",relAbout]; //将菜单的结构对象relMenu传递给nativeMenu本地菜单 nativeMenu.initMenu(relMenu); //添加菜单监听器 nativeMenu.addListener(function(evt:CActionEvent):void{ this.setInfo("你单击的菜单项为: "+evt.actionId); },this); //将右键菜单对象添加进菜单管理器以便在menuPanel对象被右击的时候显示该右键菜单 //this.menuPanel对象必须为mx.core.Container类型对象或其子类对象 this.contextMenuManager.addNativeMenu(this.menuPanel,nativeMenu);
mxml中的定义如下:
<mx:Container width="200" height="100" id="menuPanel" backgroundColor="#778899"/> <rcp:CAction id="aboutAction" actionId="actionAbout" text="关于smartrcp"/> <rcp:CAction id="copyAction" actionId="actionCopy" text="复制"/> <rcp:CAction id="pasteAction" actionId="actionPaste" text="黏贴"/>
效果图如下: