1. 程式人生 > 實用技巧 >自定義右鍵選單類

自定義右鍵選單類

自定義右鍵選單類

/**
 *
 * *---------------------------*
 * |  *** 自定義右鍵選單類 ***  |
 * *---------------------------*
 *
 * 編輯修改收錄: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();
			}

		}




	}
}