学习笔记 创建Flex右键菜单

开发 后端
本文想给大家介绍一下Flex右键菜单的概念,FlashPlayer有三种类型的上下文菜单:标准菜单、编辑菜单和错误菜单,AIR中只显示编辑菜单。

本文和大家重点讨论一下Flex右键菜单的用法,FlashPlayer有三种类型的上下文菜单:标准菜单、编辑菜单和错误菜单,只有标准菜单和编辑菜单才能使用ContextMenu类进行修改。AIR中只显示编辑菜单。

Flex右键菜单

1.简述

flash允许用户通过ContextMenu类的方法和属性,通过鼠标右键添加自定义菜单项(如“放大”和“打印”)的显示。
FlashPlayer有三种类型的上下文菜单:标准菜单(当您在FlashPlayer中右键单击时出现)、编辑菜单(当您在可选择或可编辑的文本字段中右键单击时出现)和错误菜单(当SWF文件未能加载到FlashPlayer中时出现)。只有标准菜单和编辑菜单才能使用ContextMenu类进行修改。AIR中只显示编辑菜单。
FlashPlayer中的上下文菜单添加15个自定义项。AIR中对上下文菜单中的项数没有明确限制。

2.简单例子

/**控件dg_Users初始化,创建Flex右键菜单
*
*/ 

  1. privatefunctioncreateMenu_dg_Users():void{  
  2. vardg_Users_contextMenu1:ContextMenu=newContextMenu();//创建右键菜单  
  3.  
  4. dg_Users_contextMenu1.hideBuiltInItems();//隐藏内置菜单  
  5. varrenameMenuItem:ContextMenuItem=newContextMenuItem("删除");  
  6. dg_Users_contextMenu1.customItems.push(renameMenuItem);  
  7. renameMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menu_delUserHandler);  
  8. dg_Users.contextMenu=dg_Users_contextMenu1;  
  9. }  

 //模块加载完成后初始化控件Flex右键菜单
 

  1. publicfunctioninit():void  
  2. {  
  3. createMenu_dg_Users();  
  4. }  

 /**销毁控件dg_Users的Flex右键菜单
*
*/
 

  1. privatefunctiondestroyMenu_dg_Users():void{  
  2. vardg_Users_contextMenu1:ContextMenu=dg_Users.contextMenu;  
  3. dg_Users_contextMenu1.removeEventListener(ContextMenuEvent.MENU_SELECT,menu_delUserHandler);  
  4. }  

 /**控件dg_Users,删除用户事件
*
*/ 

  1. privatefunctionmenu_delUserHandler(evt:ContextMenuEvent):void{  
  2. vars:StuffModel=dg_Users.selectedItemasStuffModel;  
  3. Alert.show(s.zgh);  
  4. }  

 <!--显示部门和用户信息-->
 

  1. <mx:Paneltitlemx:Paneltitle="用户列表"width="80%"height="100%"> 
  2.  
  3. <mx:DataGrididmx:DataGridid="dg_Users"dataProvider="{usersList}"  
  4. width="100%"height="100%"  
  5. fontWeight="normal" 
  6. horizontalCenter="0"verticalCenter="0"  
  7. > 
  8. <mx:columns> 
  9. <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="部门名称"dataField="yxsmc"/> 
  10. <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="姓名"dataField="xm"/> 
  11. </mx:columns> 
  12. </mx:DataGrid> 
  13. </mx:Panel> 
  14.  

 说明:

1.Flex右键菜单的原理为:新建一个ContextMenu类;修改ContextMenu对象的item属性;将这个对象赋给一个控件。dg_Users.contextMenu=dg_Users_contextMenu1;这句话可以保证新建立的菜单只应用于dg_Users这个控件。所以尽管你创建了多个右键菜单,也不用担心菜单会混乱。

2.待解决的问题

由于我们用到了事件监听renameMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menu_delUserHandler);所以最好在这个模块不用时,将这个监听给去掉,即调用方法destroyMenu_dg_Users(),但是这个方法何时调用,我查了一些资料,没有发现相关说明和资料。
如果不去掉这个监听,如果系统产生了过多的监听,不知道是否会引发什么问题?

参考文献:

1.Flex右键重命名的例子.http://blog.csdn.net/newskl/archive/2009/09/11/4538798.aspx
2.FLEX在某控件上创建右键实例学习.http://www.cnblogs.com/xxcainiao/archive/2008/08/05/1261246.html

【编辑推荐】

  1. Flex客户端工程路径规划指导
  2. Flex开发者必须知道的10件事
  3. 技术前沿 看Flex客户端缓存技术如何使用
  4. 12个Flex常用功能代码再现
  5. 学习笔记 Flex国际化如何支持其他语言

 


 

责任编辑:佚名 来源: chinaunix.net
相关推荐

2010-07-29 13:27:13

Flex右键菜单

2010-08-05 15:46:13

Flex行为Flex效果

2010-08-09 10:34:05

Flex背景

2010-07-30 14:50:38

Flex项目

2010-08-13 10:50:12

FlashFlexWebService

2011-02-23 09:29:29

Konqueror

2010-08-10 16:41:54

FlexJSP

2010-08-04 09:26:27

Flex数据

2010-07-29 15:36:23

Flex安全沙箱

2010-07-27 10:39:25

Flex组件

2010-08-12 11:05:33

Flex数据绑定

2010-08-09 15:19:29

Flex滚动条

2010-07-27 15:49:28

Flex

2021-11-01 05:39:18

Windows 11操作系统微软

2010-07-30 13:08:38

Flex调用JavaS

2010-08-05 10:29:11

Flex效果

2010-08-11 08:44:01

Flex对象

2022-02-17 20:07:45

Flex鸿蒙Flex组件

2022-02-16 15:32:58

FlexUI框架容器组件

2010-08-06 14:36:39

CSS样式Flex
点赞
收藏

51CTO技术栈公众号