自定义右键菜单类
/** * * *---------------------------* * | *** 自定义右键菜单类 *** | * *---------------------------* * * 编辑修改收录:fengzi(疯子、wu341、wgq341) * * 不会写代码,我是代码搬运工。 * * 联系方式:QQ(493712833)。 * * 随 笔: https://www.cnblogs.com/fengziwu/ * * 版权协议:请自觉遵守LGPL协议,欢迎修改、复制、转载、传播给更多需要的人。 * 免责声明:任何因使用此软件导致的纠纷与软件/程序开发者无关。 * 日 期: 2019.05.08 * * * ------------------ Example -------------------- * * * 自定义右键菜单类 * 自定义菜单项不得超过15个,每个标题必须至少包含一个可见字符。 * 标题字符不能超过100个,并且开头的空白字符会被忽略。 * 与任何内置菜单项相同的标题将被忽略。 import fengzi.menu.Menu; var menu:Menu = new Menu(this); menu.buildLinkMenu("as3.0 MENU 第一项",true); menu.buildLinkMenu("未启用为灰色不可点击状态 第二项",false); menu.buildLinkMenu("打开 11AIR闪客社区 第三项",true,true,link); function link():void { navigateToURL(new URLRequest("http://www.11ria.com/") , "_blank"); } */ package fengzi.menu { import flash.events.ContextMenuEvent; import flash.ui.ContextMenu; import flash.ui.ContextMenuBuiltInItems; import flash.ui.ContextMenuItem; public class Menu { private var menu:ContextMenu=new ContextMenu(); /** * Menu 构造 * @param object 对象(this) **/ public function Menu(object:Object):void { //隐藏默认的菜单项 menu.hideBuiltInItems(); //应用菜单项 object.contextMenu = menu; } /** * buildLinkMenu 菜单项 * @param title 菜单项标题名称 * @param ISenabled 菜单项是否启用(默认true启用,false未启用为灰色不可点击状态) * @param ISeparatorBefore 菜单项上方是否显示分隔条(默认false不显示) * @param Event 鼠标点击事件触动的方法(触动此方法,ISenabled设置为true) **/ public function buildLinkMenu(title:String,ISenabled:Boolean=true,ISeparatorBefore:Boolean=false,Event:Function=null):void { var item:ContextMenuItem = new ContextMenuItem(title,ISenabled,ISeparatorBefore); //在菜单数组中添加一个选项 menu.customItems.push(item); //菜单项是否接收鼠标点击; item.enabled = ISenabled; //菜单项上方是否显示分隔条 item.separatorBefore = ISeparatorBefore; //触动的事件 if (Event!=null) { item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,mouseRelease); } function mouseRelease(event:ContextMenuEvent):void { Event(); } } } }