flex 右键菜单管理工具类
2009-12-23 19:58
381 查看
/*============使用==========*/
var contextmenu:ContextMenuManager=new ContextMenuManager();
contextmenu.add("最大化",menuHandle);//menuHandle处理函数
/**==================ContextMenuManager.as==========================*/
package file
{
import flash.display.InteractiveObject;
import flash.events.*;
import flash.errors.IllegalOperationError;
import flash.ui.*;
import flash.utils.getQualifiedClassName;
public class ContextMenuManager extends EventDispatcher
{
protected var menu:ContextMenu;
protected var target:InteractiveObject;
public function ContextMenuManager(target:InteractiveObject,hideBuiltInItems:Boolean=true)
{
this.target=target;
menu=new ContextMenu();
if(hideBuiltInItems)
{
menu.hideBuiltInItems();
}
this.target.contextMenu=menu;
menu.addEventListener(ContextMenuEvent.MENU_SELECT,passEvent);
}
public function add(caption:String,handler:Function,separatorBefore:Boolean=false,enabled:Boolean=true,visible:Boolean=true):ContextMenuItem
{
var result:ContextMenuItem=createItem(caption,handler,separatorBefore,enabled,visible);
menu.customItems.push(result);
return result;
}
public function insert(id:*,caption:String,handler:Function,separatorBefore:Boolean=false,enabled:Boolean=true,visible:Boolean=true):ContextMenuItem
{
var result:ContextMenuItem=createItem(caption,handler,separatorBefore,enabled,visible);
var index:int=id is String?getIndexByCaption(id):id as int;
(menu.customItems as Array).splice(index,0,result);
return result;
}
public function remove(id:*):void
{
if(id is String)
{
id=getIndexByCaption(id);
}
customItems.splice(id as Number,1);
}
public function hideBuiltInItems():void
{
menu.hideBuiltInItems();
}
public function getItem(id:*):ContextMenuItem
{
if(id is String)
{
id=getIndexByCaption(id);
}
return menu.customItems[id];
}
public function get customItems():Array
{
return menu.customItems;
}
public function get builtInItems():ContextMenuBuiltInItems
{
return menu.builtInItems;
}
public function get contextMenu():ContextMenu
{
return menu;
}
/** *@private */
protected function createItem(caption:String,handler:Function,separatorBefore:Boolean=false,enabled:Boolean=true,visible:Boolean=true):ContextMenuItem
{
var result:ContextMenuItem=new ContextMenuItem(caption,separatorBefore,enabled,visible);
result.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,handler);
result.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,passEvent);
return result;
}
/** *@private */
protected function getIndexByCaption(caption:String):int
{
for(var i:uint=0;i<menu.customItems.length;i++)
{
if(menu.customItems[i].caption==caption)
{
return i;
}
}
return-1;
}
/** * @private */
protected function passEvent(event:ContextMenuEvent):void
{
dispatchEvent(new ContextMenuEvent(event.type,event.bubbles,event.cancelable,event.mouseTarget,event.contextMenuOwner));
}
}
}
var contextmenu:ContextMenuManager=new ContextMenuManager();
contextmenu.add("最大化",menuHandle);//menuHandle处理函数
/**==================ContextMenuManager.as==========================*/
package file
{
import flash.display.InteractiveObject;
import flash.events.*;
import flash.errors.IllegalOperationError;
import flash.ui.*;
import flash.utils.getQualifiedClassName;
public class ContextMenuManager extends EventDispatcher
{
protected var menu:ContextMenu;
protected var target:InteractiveObject;
public function ContextMenuManager(target:InteractiveObject,hideBuiltInItems:Boolean=true)
{
this.target=target;
menu=new ContextMenu();
if(hideBuiltInItems)
{
menu.hideBuiltInItems();
}
this.target.contextMenu=menu;
menu.addEventListener(ContextMenuEvent.MENU_SELECT,passEvent);
}
public function add(caption:String,handler:Function,separatorBefore:Boolean=false,enabled:Boolean=true,visible:Boolean=true):ContextMenuItem
{
var result:ContextMenuItem=createItem(caption,handler,separatorBefore,enabled,visible);
menu.customItems.push(result);
return result;
}
public function insert(id:*,caption:String,handler:Function,separatorBefore:Boolean=false,enabled:Boolean=true,visible:Boolean=true):ContextMenuItem
{
var result:ContextMenuItem=createItem(caption,handler,separatorBefore,enabled,visible);
var index:int=id is String?getIndexByCaption(id):id as int;
(menu.customItems as Array).splice(index,0,result);
return result;
}
public function remove(id:*):void
{
if(id is String)
{
id=getIndexByCaption(id);
}
customItems.splice(id as Number,1);
}
public function hideBuiltInItems():void
{
menu.hideBuiltInItems();
}
public function getItem(id:*):ContextMenuItem
{
if(id is String)
{
id=getIndexByCaption(id);
}
return menu.customItems[id];
}
public function get customItems():Array
{
return menu.customItems;
}
public function get builtInItems():ContextMenuBuiltInItems
{
return menu.builtInItems;
}
public function get contextMenu():ContextMenu
{
return menu;
}
/** *@private */
protected function createItem(caption:String,handler:Function,separatorBefore:Boolean=false,enabled:Boolean=true,visible:Boolean=true):ContextMenuItem
{
var result:ContextMenuItem=new ContextMenuItem(caption,separatorBefore,enabled,visible);
result.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,handler);
result.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,passEvent);
return result;
}
/** *@private */
protected function getIndexByCaption(caption:String):int
{
for(var i:uint=0;i<menu.customItems.length;i++)
{
if(menu.customItems[i].caption==caption)
{
return i;
}
}
return-1;
}
/** * @private */
protected function passEvent(event:ContextMenuEvent):void
{
dispatchEvent(new ContextMenuEvent(event.type,event.bubbles,event.cancelable,event.mouseTarget,event.contextMenuOwner));
}
}
}
相关文章推荐
- 火绒安全-右键菜单管理独立提取版V14.8.8
- 在Flex中个性化定制属于你的右键菜单
- FLEX入门实例--------FLEX全屏功能实现及右键菜单
- Flex屏蔽并自定义鼠标右键菜单
- atitit。wondows 右键菜单的管理与位置存储
- flex中定制右键菜单
- Flex右键菜单保留字问题(ContextMenuItem)
- Win7/Win8右键菜单管理工具(Easy Context Menu) v1.5 绿色版
- POLYV管理平台如何修改播放器右键菜单(右键版权修改)教程
- Flex自定义右键菜单具体实现
- 修复windows7点计算机右键菜单选择“管理”没有反应、出错的问题
- [Asp.net]Calendar+JqueryUi实现日程管理(右键菜单,添加,编辑,删除,源码)
- flex自定义右键菜单
- FLEX 屏闭系统右键菜单,及在列表控件DataGrid/Tree/List上点右键时自动选择当前行
- FLEX 屏闭系统右键菜单,及在列表控件DataGrid\Tree\List上点右键时自动选择当前行
- AS3.0的元素处理(五)-- 管理Flash右键菜单 推荐
- atitit。wondows 右键菜单的管理与位置存储
- Flex 右键菜单
- Flex 添加右键菜单
- 给我的电脑右键菜单添加{管理}菜单...