废话不用多说,只需下面几句简单代码就可以创建出功能完整的右键菜单
//构造右键菜单对象
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="黏贴"/>
效果图如下:

本文介绍了一种在Flash中创建自定义右键菜单的方法。通过简单的代码实现包括复制、粘贴及关于等基本功能的菜单,并展示了如何组织这些菜单项以提供更好的用户体验。
187

被折叠的 条评论
为什么被折叠?



