`
demojava
  • 浏览: 540495 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex ContextMenuItem 根据状态隐藏选项

 
阅读更多

因群里一个群员的要求,写了这个demo,代码粗糙,根据一个控件的enabled属性来设定 ContextMenuItem 中某一项是否可用。。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"  verticalAlign="middle" 
	horizontalAlign="center" creationComplete="init1()" >
    <mx:Script>
     <![CDATA[
     	import mx.controls.Alert;
         import flash.ui.ContextMenu;
         import flash.ui.ContextMenuItem;
         import flash.events.ContextMenuEvent;
         //在全局上定义四个菜单条目
      private var myMenuItem1:ContextMenuItem;
      private var myMenuItem2:ContextMenuItem;
      private var myMenuItem3:ContextMenuItem;
      private var myMenuItem4:ContextMenuItem;
      private var myMenu:ContextMenu;
      private var myMenu2:ContextMenu;
      //开始初始化
      private function init1():void
      {
        myMenuItem1 = new ContextMenuItem('全局的 菜单',true);
        myMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
        //全局的 菜单
         myMenu = new ContextMenu();
         myMenuItem1.enabled=false;
        myMenu.customItems.push(myMenuItem1);
        
        myMenu.hideBuiltInItems();
       //隐藏指定的 ContextMenu 对象中的所有内置菜单项(“设置”除外)。
        this.contextMenu = myMenu;
         //textinput 菜单
         var myMenu2 = new ContextMenu();
    	 myMenu2.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
    	 myMenuItem3 = new ContextMenuItem('textinput1 菜单',true);
    	  myMenu2.customItems.push(myMenuItem3);
       		 txt1.contextMenu=myMenu2;
       		 txt.contextMenu=myMenu2;
      }
      
    private function menuSelectHandler(d:ContextMenuEvent):void
    {
    	//获取点击对象信息
    	var text:TextInput=d.contextMenuOwner as TextInput;
    	if(text!=null)
    	{
    		if(text.enabled)
    		{
    			myMenuItem3.enabled=true;
    		}else
    		{
    			myMenuItem3.enabled=false;
    		}
    	}
    }
    
   //导航逻辑
   private function menuItemHandler(event:ContextMenuEvent):void
   {
    switch (event.target)
    {
     case myMenuItem1:
     navigateToURL(new URLRequest('http://www.google.cn/'));
     break;
     
     case myMenuItem2:
     navigateToURL(new URLRequest('http://www.baidu.com/'));
     break;
      
     case myMenuItem3:
     navigateToURL(new URLRequest('http://sports.sohu.com/'));
     break;
    }
   }
   
   private function demoHandler():void
   {
   	var functionName:String = "demo";
		if (this.hasOwnProperty(functionName))
		this[functionName]();
   }
  ]]>
    </mx:Script>
 <mx:TextInput text="可在舞台任何地方右击菜单" fontSize="13" id="txt"  enabled="false"/>
  <mx:TextInput text="可在舞台任何地方右击菜单" fontSize="13" id="txt1"/>
  <mx:Button label="demo" click="demoHandler()" >
  	
  </mx:Button>
</mx:Application>

 

分享到:
评论

相关推荐

    CS6打开歌词同步频谱播放器源码

    var menuItem4:ContextMenuItem = new ContextMenuItem("Flash官方最新播放插件升级程序下载更新播放插件",true); myContextMenu.customItems.push(menuItem1); myContextMenu.customItems.push(menuItem2)...

    魔坦之争-资源包 Mango易创

    【HideIninspector】——将公共变量隐藏 【Header(“分组说明”)】——将可视化变量进行分组 【Tooltip(“内容说明”)】——鼠标移动变量处时显示说明信息 【Range(最小值,最大值)】——通过拖动条的方式来...

    vue-context-menu:HTML元素的简单通用上下文菜单

    安装# install with npmnpm i add-context-menu快速开始# import add-context-menuimport ContextMenu from ' add-context-menu 'import ContextMenuItem from ' add-context-menu 'Vue.use(ContextMenu)Vue.use...

    flash action script 经典字典教程大全,学flash必备

    ContextMenuItem ContextMenuItem 类 continue continue CONTROL Key.CONTROL copy ContextMenu.copy()、ContextMenuItem.copy() cos Math.cos() createElement XML.createElement() ...

    詹书霞旋转动画

    my_cm.customItems.push(new ContextMenuItem("欢迎点击进入My LOVER'S 空间~~~!", menu1)); function menu1(obj, item) { getURL("http://user.qzone.qq.com/857448367", "_blank"); } _root.menu = my_cm; 3: ...

Global site tag (gtag.js) - Google Analytics