自定义右键菜单类

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

		}




	}
}

  

posted on 2020-09-20 22:04  疯子_wu  阅读(171)  评论(0编辑  收藏  举报