自定义右键菜单类
/**
*
* *---------------------------*
* | *** 自定义右键菜单类 *** |
* *---------------------------*
*
* 编辑修改收录: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();
}
}
}
}