`
demojava
  • 浏览: 548905 次
  • 性别: 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>

 

分享到:
评论

相关推荐

    flex_ContextMenu.zip_flex

    例如,根据当前选中的数据或状态来决定显示哪些菜单项。 6. 处理事件: 当用户点击菜单项时,我们需要监听ContextMenuEvent.MENU_ITEM_CLICK事件。事件处理函数可以获取到触发事件的ContextMenuItem,从而执行相应...

    Flex 实现右键菜单

    在Flex中,我们可以使用`ContextMenu`类来创建菜单,而`ContextMenuItem`类则用于创建菜单项。如果需要支持多级菜单,可以创建嵌套的`ContextMenuItem`对象。下面是一个创建简单两层菜单的例子: ```actionscript ...

    Flex右键支持

    总之,通过使用Flex的`ContextMenu`和`ContextMenuItem`类,我们可以轻松地为Flex应用程序添加右键支持。这不仅增强了用户界面的交互性,也为用户提供了更多的操作选项。结合提供的资源,开发者可以更深入地理解和...

    flex-right-click.rar_flex_flex right

    在本文中,我们将深入探讨如何在Flex应用中实现右键点击功能,并且结合"flex-right-click.rar_flex_flex right"这一标题,我们可以推断这是一个关于在Flex项目中添加右键菜单并支持增删操作的示例。Flex是一种基于...

    flex自制右键菜单

    如果需要根据应用状态或用户操作动态修改菜单,可以随时调用`ContextMenu`的`removeChild()`、`addChild()`方法或直接设置`items`属性。 总结来说,通过监听和处理鼠标事件,结合`ContextMenu`和`ContextMenuItem`...

    flex自定义右键菜单

    在Flex应用中,用户界面的交互性是关键,而右键菜单作为常见的用户交互元素,能够提供额外的功能选项,增强用户体验。本篇文章将深入探讨如何在Flex中自定义右键菜单。 一、Flex中的上下文菜单(Context Menu) ...

    flex屏蔽系统右键菜单 & 自定义菜单

    "flex屏蔽系统右键菜单 & 自定义菜单"这个主题聚焦于如何禁用默认的系统右键菜单并创建自定义的右键菜单,以提供更个性化的用户体验。下面将详细介绍这个过程涉及的关键知识点。 1. Flex环境:Flex是Adobe开发的一...

    flex右键菜单RightClickManager 非Application也可以弹出

    在Flex中,右键菜单是一个常见的需求,可以增强用户体验,提供更多的操作选项。 在Flex中实现右键菜单通常有两种方式,一种是通过Flex内置的ContextMenuItem类,另一种是通过第三方库RightClickManager。原生的...

    Flash右键隐藏菜单,并添加自定义菜单.txt

    然而,在某些应用场景下,开发人员可能希望隐藏这些默认选项,以便为用户提供一个更加简洁或者定制化的体验。要实现这一点,可以使用`hideBuiltInItems()`方法。 ```actionscript myContextMenu = new ContextMenu...

    flex添加右键菜单实例

    在Flex编程中,右键菜单(ContextMenu)是一个重要的交互元素,它可以为用户提供额外的操作选项。在给定的实例中,我们看到如何在Flex应用中创建并添加自定义的右键菜单。下面将详细解释这个实例中的关键知识点。 ...

    flex右键功能 画图

    在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将详细讲解如何在Flex项目中实现右键功能,并结合描述中的"点击右键会不断地画出小圆点"这一具体...

    Flex自定义右健菜单

    例如,可以隐藏内置的菜单项,然后添加自定义的`ContextMenuItem`。 ```actionscript var contextMenu:ContextMenu = new ContextMenu(); contextMenu.hideBuiltInItems(); // 隐藏内置菜单项 var contextMenuItem1...

    flex设计的流程图拖动连线右键功能实现源码

    5. **右键菜单**:在Flex中,我们可以自定义右键菜单,使用ContextMenu和ContextMenuItem类。通过监听鼠标右键点击事件,显示对应的菜单,并为每个菜单项添加事件处理器,实现不同功能,如添加、删除、复制和粘贴...

    Flex4自定义右键菜单源码.rar

    Flex4是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的图形编程模型,使得开发者能够创建交互性强、视觉效果优秀的Web应用。在Flex4中,自定义右键菜单...

    flash11.2新功能,Flex屏蔽右击菜单

    var item1:ContextMenuItem = new ContextMenuItem("菜单项1"); item1.addEventListener(ContextMenuEvent.MENU_ITEM_CLICK, menuItem1ClickHandler); customMenu.customItems.push(item1); // 添加其他菜单项和...

    flash右键菜单

    为了让菜单项更具交互性,我们可以根据当前的显示状态(全屏或非全屏)来改变菜单项的状态。这主要是通过`menuHandler`函数来实现的。 ```actionscript function menuHandler(obj, menuObj):void { if (Stage[...

    在Flex中给datagrid添加右键菜单项的具体实现

    在`removeDefaultItems()`函数中,我们隐藏了内置的菜单项,并设置打印选项为false: ```actionscript private function removeDefaultItems():void { myContextMenu.hideBuiltInItems(); var defaultItems:...

    屏蔽flash右键包括“设置”“关于”

    var customMenu:ContextMenuItem = new ContextMenuItem("自定义选项"); stage.contextMenu = new ContextMenu(); stage.contextMenu.customItems = [customMenu]; ``` 除了在ActionScript中处理,"index.htm"是...

    Flash-context-menu-forbidden.rar_Menu_flash_flash menu_flash 控件

    在Flash中,开发者通常会遇到一个问题:默认的Flash控件右键菜单包含了一些通用的选项,如“播放”、“停止”、“全屏”,这些可能会干扰到定制的交互体验。为了解决这个问题,开发者需要学习如何自定义或完全禁用...

Global site tag (gtag.js) - Google Analytics