自定義右鍵選單類
阿新 • • 發佈:2020-09-21
自定義右鍵選單類
/** * * *---------------------------* * | *** 自定義右鍵選單類 *** | * *---------------------------* * * 編輯修改收錄: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(); } } } }