`
smartinvoke
  • 浏览: 106924 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

smartrcp开源平台使用Java与Flex构建桌面程序 六(右键菜单)

阅读更多

废话不用多说,只需下面几句简单代码就可以创建出功能完整的右键菜单

//构造右键菜单对象
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="黏贴"/>
 

效果图如下:

 

  

  • 大小: 9.4 KB
3
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics