当使用
<s:Panel id="mainPanel" skinClass="spark.skins.spark.SkinnableContainerSkin" visible="false" width="1029" >
<mx:Tree x="10" y="1" width="247" height="457" id="tree_deps" dataProvider="{treeData.dep}" labelField="@name" showRoot="false" labelFunction="tree_labelFunc" mouseOut="this.contextMenu =null " mouseOver="initTree()"></mx:Tree>
</s:Panel>
============================================
以下是方法:
//显示子节点个数
private function tree_labelFunc(item:XML):String {
var children:ICollectionView;
var suffix:String = "";
if (tree_deps.dataDescriptor.isBranch(item)) {
children = tree_deps.dataDescriptor.getChildren(item);
suffix = " (" + children.length + ")";
}
return item[tree_deps.labelField] + suffix;
}
//在全局上,定义三个栏目
private var MyMenu:ContextMenu = new ContextMenu();
//初始化开始了
public function initTree():void{
var menu1:ContextMenuItem = new ContextMenuItem("发送消息");
var menu2:ContextMenuItem = new ContextMenuItem("查看资料");
var menu3:ContextMenuItem = new ContextMenuItem("删除好友");
MyMenu.customItems.push(menu1);
MyMenu.customItems.push(menu2);
MyMenu.customItems.push(menu3);
//让这三个栏目监听点事件
menu1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menudraw);
menu2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menudraw);
menu3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menudraw);
tree_deps.contextMenu = MyMenu;
MyMenu.hideBuiltInItems();
}
//选择选择到了右键栏目,改干点啥
private function menudraw(event:ContextMenuEvent):void {
//var label:Label = event.contextMenuOwner as Label;
var menuItem:ContextMenuItem = event.target as ContextMenuItem;
Alert.show("---您选择了:"+menuItem.caption);
//label.text =menuItem.caption;
}
以上这样在面板中绑定右键菜单失败,后来发现须在<s:panel>标签里面添加一个属性mouseEnabled="true"即可
分享到:
相关推荐
4. 自定义右键菜单(ContextMenu类):Flex提供了`ContextMenu`类,我们可以使用它来创建自定义的右键菜单。首先创建一个`ContextMenu`实例,然后添加`ContextMenuItem`对象作为菜单项。每个`ContextMenuItem`可以有...
在Flex中,我们可以使用ContextMenu类来创建一个基本的右键菜单。ContextMenu类是mx.controls.ContextMenu的子类,提供了添加菜单项、设置事件处理等功能。默认情况下,当用户右键点击一个组件时,会显示与其关联的...
通过以上步骤,我们可以成功地在Flex应用中创建并使用自定义的右键菜单。这不仅提高了用户体验,也为Flex应用提供了更丰富的交互可能性。在实际开发中,可以根据具体需求调整菜单结构、添加更多的功能或优化性能。
这对于初学者来说是一份宝贵的学习资源,他们可以通过阅读和理解代码来学习如何在Flex4项目中创建和管理自定义的右键菜单。 描述中提到的“对初学者有用,一个简单的flex自定义右键菜单”表明这个示例是为初学者...
Flex中的右键菜单通常通过ContextMenu类来创建。ContextMenu类允许开发者定义一组菜单项,这些菜单项可以在用户右键点击时显示。首先,你需要创建一个ContextMenu实例,并添加自定义的MenuItem或BuiltInMenuItem...
在给定的实例中,我们看到如何在Flex应用中创建并添加自定义的右键菜单。下面将详细解释这个实例中的关键知识点。 首先,我们需要导入必要的类库,包括`mx.core.ContextualClassFactory`用于创建ContextMenuItem,`...
在Flex3的开发中,我们经常需要为Tree组件添加右键菜单,以提供更多的用户交互功能。右键菜单的实现不仅增加了用户界面的丰富性,也提升了用户体验。 首先,让我们理解Flex3 Tree组件的基本概念。Tree组件是基于MX...
在Flex开发中,有时我们需要为用户界面添加自定义的右键菜单,以便提供更多的交互功能。本教程将指导你如何在Flex项目中实现这一功能,主要涉及以下知识点: 1. **右键菜单库的引入**: 首先,你需要下载一个名为`...
在Flex中创建右键菜单主要涉及两个关键组件:`ContextMenu`和`ContextMenuEvent`。`ContextMenu`是显示在鼠标右键点击时的菜单,而`ContextMenuEvent`是触发菜单显示的事件。 1. **创建ContextMenu对象** 要创建一...
本篇文章将深入探讨如何在Flex Tree组件中实现右键菜单。 首先,我们要了解Flex中的Event.MENU_SHOW事件,这是在用户打开右键菜单时触发的事件。为了监听这个事件,我们需要在Tree组件上添加事件监听器。代码示例...
标题提到的"flex自定义右键菜单 完全屏蔽"是指在Flex应用程序中,不仅实现对默认右键菜单的完全屏蔽,还允许开发者根据自己的需求创建并应用自定义的右键菜单。这种方法避免了使用JavaScript进行跨域通信来实现屏蔽...
本文将深入探讨如何在Flex环境中实现自定义的右键菜单,包括屏蔽浏览器的默认右键菜单,创建XML格式的多级菜单,以及设置菜单出现位置的自适应策略。 首先,我们需要了解Flex屏蔽浏览器系统右键的基本方法。在...
本项目标题为"flex自制右键菜单",描述中提到作者从网上获取了相关代码并进行改写,实现了屏蔽Flex默认的右键菜单以及动态生成右键菜单的功能。下面我们将详细探讨Flex中如何实现这一目标。 首先,Flex是由Adobe...
Flex提供了ContextMenu类,用于创建和管理右键菜单。首先,我们需要创建一个ContextMenuItem对象,然后将其添加到ContextMenu实例中。例如: ```actionscript var menuItem:ContextMenuItem = new ContextMenuItem...
完全屏蔽flex自带的右键菜单,实现自定义右键菜单,附件有完整可运行的例子。 这个问题折腾了一天多,在网上搜了很多资料,几乎都是一样的,转来转去,且讲的不明不白。这里我提供了可运行的全部代码,让你轻松搞定...
"Flex右键菜单例子"是一个专门针对Flex技术的右键菜单自定义解决方案。Flex是一种用于构建富互联网应用程序(RIA)的开放源代码框架,由Adobe公司开发。它基于ActionScript编程语言和MXML标记语言,主要用于创建交互式...
本文将深入探讨两种实现Flex自定义右键菜单的方法:系统右键菜单的扩展以及完全自定义的右键菜单。 1. **系统右键菜单** 系统右键菜单是在Flex应用中利用ActionScript 3.0直接添加到UI组件上的菜单项。这种实现...
4. **绑定到组件**:将创建的`ContextMenu`对象绑定到需要显示右键菜单的组件上。例如,如果你有一个名为`myComponent`的`Sprite`或`UIComponent`,可以这样操作: ```actionscript myComponent.contextMenu = ...
首先,让我们来看一下创建右键菜单的基本步骤。在Flex中,我们通常会使用`Menu`类来创建菜单项。例如,在MXML中,你可以定义一个按钮,当点击这个按钮时显示右键菜单: ```xml 显示菜单" fontSize="17" click=...