因群里一个群员的要求,写了这个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>
分享到:
相关推荐
例如,根据当前选中的数据或状态来决定显示哪些菜单项。 6. 处理事件: 当用户点击菜单项时,我们需要监听ContextMenuEvent.MENU_ITEM_CLICK事件。事件处理函数可以获取到触发事件的ContextMenuItem,从而执行相应...
在Flex中,我们可以使用`ContextMenu`类来创建菜单,而`ContextMenuItem`类则用于创建菜单项。如果需要支持多级菜单,可以创建嵌套的`ContextMenuItem`对象。下面是一个创建简单两层菜单的例子: ```actionscript ...
总之,通过使用Flex的`ContextMenu`和`ContextMenuItem`类,我们可以轻松地为Flex应用程序添加右键支持。这不仅增强了用户界面的交互性,也为用户提供了更多的操作选项。结合提供的资源,开发者可以更深入地理解和...
在本文中,我们将深入探讨如何在Flex应用中实现右键点击功能,并且结合"flex-right-click.rar_flex_flex right"这一标题,我们可以推断这是一个关于在Flex项目中添加右键菜单并支持增删操作的示例。Flex是一种基于...
如果需要根据应用状态或用户操作动态修改菜单,可以随时调用`ContextMenu`的`removeChild()`、`addChild()`方法或直接设置`items`属性。 总结来说,通过监听和处理鼠标事件,结合`ContextMenu`和`ContextMenuItem`...
在Flex应用中,用户界面的交互性是关键,而右键菜单作为常见的用户交互元素,能够提供额外的功能选项,增强用户体验。本篇文章将深入探讨如何在Flex中自定义右键菜单。 一、Flex中的上下文菜单(Context Menu) ...
"flex屏蔽系统右键菜单 & 自定义菜单"这个主题聚焦于如何禁用默认的系统右键菜单并创建自定义的右键菜单,以提供更个性化的用户体验。下面将详细介绍这个过程涉及的关键知识点。 1. Flex环境:Flex是Adobe开发的一...
在Flex中,右键菜单是一个常见的需求,可以增强用户体验,提供更多的操作选项。 在Flex中实现右键菜单通常有两种方式,一种是通过Flex内置的ContextMenuItem类,另一种是通过第三方库RightClickManager。原生的...
然而,在某些应用场景下,开发人员可能希望隐藏这些默认选项,以便为用户提供一个更加简洁或者定制化的体验。要实现这一点,可以使用`hideBuiltInItems()`方法。 ```actionscript myContextMenu = new ContextMenu...
在Flex编程中,右键菜单(ContextMenu)是一个重要的交互元素,它可以为用户提供额外的操作选项。在给定的实例中,我们看到如何在Flex应用中创建并添加自定义的右键菜单。下面将详细解释这个实例中的关键知识点。 ...
在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将详细讲解如何在Flex项目中实现右键功能,并结合描述中的"点击右键会不断地画出小圆点"这一具体...
例如,可以隐藏内置的菜单项,然后添加自定义的`ContextMenuItem`。 ```actionscript var contextMenu:ContextMenu = new ContextMenu(); contextMenu.hideBuiltInItems(); // 隐藏内置菜单项 var contextMenuItem1...
5. **右键菜单**:在Flex中,我们可以自定义右键菜单,使用ContextMenu和ContextMenuItem类。通过监听鼠标右键点击事件,显示对应的菜单,并为每个菜单项添加事件处理器,实现不同功能,如添加、删除、复制和粘贴...
Flex4是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的图形编程模型,使得开发者能够创建交互性强、视觉效果优秀的Web应用。在Flex4中,自定义右键菜单...
var item1:ContextMenuItem = new ContextMenuItem("菜单项1"); item1.addEventListener(ContextMenuEvent.MENU_ITEM_CLICK, menuItem1ClickHandler); customMenu.customItems.push(item1); // 添加其他菜单项和...
为了让菜单项更具交互性,我们可以根据当前的显示状态(全屏或非全屏)来改变菜单项的状态。这主要是通过`menuHandler`函数来实现的。 ```actionscript function menuHandler(obj, menuObj):void { if (Stage[...
在`removeDefaultItems()`函数中,我们隐藏了内置的菜单项,并设置打印选项为false: ```actionscript private function removeDefaultItems():void { myContextMenu.hideBuiltInItems(); var defaultItems:...
var customMenu:ContextMenuItem = new ContextMenuItem("自定义选项"); stage.contextMenu = new ContextMenu(); stage.contextMenu.customItems = [customMenu]; ``` 除了在ActionScript中处理,"index.htm"是...
在Flash中,开发者通常会遇到一个问题:默认的Flash控件右键菜单包含了一些通用的选项,如“播放”、“停止”、“全屏”,这些可能会干扰到定制的交互体验。为了解决这个问题,开发者需要学习如何自定义或完全禁用...