package
{
import flash.events.ContextMenuEvent;
import flash.events.MouseEvent;
import flash.ui.ContextMenuItem;
import mx.core.Application;
import mx.core.UIComponent;
public class RightClickMenu
{
public var MenuContents:Array = new Array ();
public function RightClickMenu(){}
public function AddItem (name:String, func:Function):void
{
MenuContents.push({Name:name, Func:func});
}
public function AssignRightClick (uiComponent:UIComponent):void
{
uiComponent.addEventListener(MouseEvent.MOUSE_OVER, genEnableMenu (uiComponent));
uiComponent.addEventListener(MouseEvent.MOUSE_MOVE, disableMenu);
}
/* Assignment */
private function ResetContextMenu (event:MouseEvent):void
{ //remove menu
Application.application.contextMenu.customItems = new Array ();
//remove this function
Application.application.removeEventListener(MouseEvent.MOUSE_MOVE, ResetContextMenu);
}
private function disableMenu(event:MouseEvent):void
{
//Stop the mouse move event from propagating to the application level, where we remove the menu
event.stopImmediatePropagation();
}
private function genEnableMenu (uiComponent:UIComponent):Function
{
return function (event:MouseEvent):void
{
//add event listener to remove the menu on mouse move
Application.application.addEventListener(MouseEvent.MOUSE_MOVE, ResetContextMenu);
//hide current menu
Application.application.contextMenu.hideBuiltInItems();
//remove menu (ifyou right click and then move, this may not be killed.
Application.application.contextMenu.customItems = new Array ();
//create new menu
for (var i:Number in MenuContents)
{
var menuItem:ContextMenuItem = new ContextMenuItem(MenuContents[i].Name);
menuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, MenuContents[i].Func);
Application.application.contextMenu.customItems.push(menuItem);
}
}
}
private function genClickCall (func:Function):Function
{
return function (event:ContextMenuEvent):void
{
func()
ResetContextMenu(null);
}
}
}
}
参考地址:http://dannygagne.com/projects/flex/context-menu-demo
分享到:
相关推荐
Flex右键菜单 flex tree 右键菜单 导入eclipse可直接用。我使用的flex sdk 版本是flex4.5.1,更改为4.0可直接使用。
flex右键例子
具体信息见博文:http://blog.csdn.net/yc2503yc/archive/2011/05/18/6429872.aspx
Flex添加右键菜单,只是文档,里边有描述性的代码
flex 自定义右键菜单 多级右键菜单flex 自定义右键菜单 多级右键菜单flex 自定义右键菜单 多级右键菜单
Flex自定义右键菜单
flex右键菜单代码,很不错的哦。分享给大家;
flex右键菜单完全屏蔽右键 可以自定义;导入后可以直接应用;绝对值; 非js屏蔽
flex实现右键功能 点击右键会不断地画出小圆点 供大家分享
自定义右键,屏蔽系统自带右键, 经测试可使用在opensacles地图上。解决地图开发时无法使用无法使用自定义右键及无法屏蔽系统右键问题。
NULL 博文链接:https://mirabelle1211.iteye.com/blog/961255
flex小实例-----menu菜单引出事件监听器注册.docflex小实例-----menu菜单引出事件监听器注册.docflex小实例-----menu菜单引出事件监听器注册.doc
flex两种右键菜单,RightClickManager修改后在非Application下也可以弹出来。
flex 使用右键,有例子源码,可用SDK4.6
flex添加右键菜单实例。很经典的实例。
该代码是在Flex实现右键的具体实现方法。 如有不明可发信息咨询活留言。
NULL 博文链接:https://lpyyn.iteye.com/blog/2054024
flex 右键菜单两种实现: 1.系统右键菜单,系统右键菜单项中添加菜单项 2.屏蔽系统右键菜单,自定义右键菜单
flex 右键菜单两种实现: 1.系统右键菜单,系统右键菜单项中添加菜单项 2.屏蔽系统右键菜单,自定义右键菜单