这里写了一个简单的自定义鼠标右键,代码不难,请看注释
其它的请大家参看官方文档 ContextMenu类 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="init()">
<mx:Script>
<![CDATA[
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 function init():void
{
/* ContextMenuItem类的构造函数要传入几个参数,它们分别代表
1 菜单项的名称
2 在该菜单项上是否显示分隔条,默认是不显示
3 是否可用,默认是可用的
4 是否显示,默认是可显示的
*/
myMenuItem1 = new ContextMenuItem('链接到谷歌',true);
myMenuItem2 = new ContextMenuItem('链接到百度',true);
myMenuItem3 = new ContextMenuItem('链接到搜狐体育',true);
myMenuItem4 = new ContextMenuItem('链接到汽车之家',true);
//添加事件侦听,以此来进行相应的逻辑实现
myMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
myMenuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
myMenuItem3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
myMenuItem4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
//创建个性化的菜单
var myMenu:ContextMenu = new ContextMenu();
myMenu.customItems.push(myMenuItem1);
myMenu.customItems.push(myMenuItem2);
myMenu.customItems.push(myMenuItem3);
myMenu.customItems.push(myMenuItem4);
//如果要隐藏默认的菜单项,可以这样设置
myMenu.hideBuiltInItems();
//这样是整个舞台都可以显示出相应的右键菜单
this.contextMenu = myMenu;
}
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml
" layout="vertical" verticalAlign="middle" horizontalAlign="center" creationComplete="init()">
<mx:Script>
<![CDATA[
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 function init():void
{
/* ContextMenuItem类的构造函数要传入几个参数,它们分别代表
1 菜单项的名称
2 在该菜单项上是否显示分隔条,默认是不显示
3 是否可用,默认是可用的
4 是否显示,默认是可显示的
*/
myMenuItem1 = new ContextMenuItem('链接到谷歌',true);
myMenuItem2 = new ContextMenuItem('链接到百度',true);
myMenuItem3 = new ContextMenuItem('链接到搜狐体育',true);
myMenuItem4 = new ContextMenuItem('链接到汽车之家',true);
//添加事件侦听,以此来进行相应的逻辑实现
myMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
myMenuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
myMenuItem3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
myMenuItem4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemHandler);
//创建个性化的菜单
var myMenu:ContextMenu = new ContextMenu();
myMenu.customItems.push(myMenuItem1);
myMenu.customItems.push(myMenuItem2);
myMenu.customItems.push(myMenuItem3);
myMenu.customItems.push(myMenuItem4);
//如果要隐藏默认的菜单项,可以这样设置
myMenu.hideBuiltInItems();
//这样是整个舞台都可以显示出相应的右键菜单
this.contextMenu = myMenu;
}
//导航逻辑
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;
case myMenuItem4:
navigateToURL(new URLRequest('http://www.autohome.com.cn/'));
break;
}
}
]]>
</mx:Script>
<mx:TextInput text="可在舞台任何地方右击菜单" fontSize="13"/>
</mx:Application>