• AS3.0 自定义右键菜单类


    AS3.0 自定义右键菜单类:

    /**
    * 自定义右键菜单类
    * 自定义菜单项不得超过15个,每个标题必须至少包含一个可见字符。
    * 标题字符不能超过100个,并且开头的空白字符会被忽略。
    * 与任何内置菜单项相同的标题将被忽略。
    **/
    
    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();
    			}
    
    		}
    		
    		
    		
    		
    	}
    }
    

      

    调用:

    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");
    }
    

      

  • 相关阅读:
    不同操作系统的宏定义区分
    WINDOWS下VS编译opencv并加载自定义模块
    基于模板匹配的马赛克检验
    [转]C++模板详解
    [Linux命令]Unix/Linux信号量的使用
    [C/C++基础]读写文件
    [Linux命令]查看Linux系统相关命令
    【Linux命令】查找命令
    【QT相关】文件、目录基础操作
    【MFC相关】图片显示
  • 原文地址:https://www.cnblogs.com/fengziwu/p/10789680.html
Copyright © 2020-2023  润新知