将自定义右键菜单的一些属性和方法归纳到AddRightMenu.as,通过实例化此类,调用相关方法即可测试!

 package
{
import flash.display.Sprite;
import flash.events.ContextMenuEvent;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.ui.ContextMenu;
import flash.ui.ContextMenuBuiltInItems;
import flash.ui.ContextMenuItem; /**
* ...
* @author Frost.Yen
*/
public class AddRightMenu
{
private var rightMenu:ContextMenu;
public function AddRightMenu(obj:Object):void
{
rightMenu = new ContextMenu();
obj.contextMenu = rightMenu;
} /**
* 添加右键菜单并链接
* ContextMenuItem的属性customItems,ContextMenuItem 对象的数组。 数组中的每个对象表示您已经定义的上下文菜单项。 使用此属性可添加、删除或修改这些自定义菜单项。若要添加新的菜单项,请创建一个 ContextMenuItem 对象,然后将其添加到 customItems 数组(例如使用 Array.push())。
* @param name 菜单名称
* @param url 链接地址
*/
public function appendRightMenu(name:String,url:String):void
{
var item:ContextMenuItem = new ContextMenuItem(name,true);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuSelect);
rightMenu.customItems.push(item);
function onMenuSelect(e:ContextMenuEvent):void
{
navigateToURL(new URLRequest(url), "_blank");
}
} /**
* ContextMenu属性link,链接的 URLRequest。如果此属性为 null,则显示标准上下文菜单。如果此属性为非 null,则显示链接上下文菜单并对指定的 URL 执行操作。
* @param url
*/
public function menuLink(url:String):void
{
rightMenu.link = new URLRequest(url);
} /**
* ContextMenu属性builtInItems ,一个对象,它包含 ContextMenuBuiltInItems 类的以下属性:forwardAndBack、loop、play、print、quality、rewind、save 和 zoom。 将这些属性设置为 false 将删除指定的 ContextMenu 对象中的对应菜单项。 这些属性是可枚举的属性,默认情况下设置为 true。
* @param isForwardAndBack
* @param isLoop
* @param isPlay
* @param isPrint
* @param isQuality
* @param isRewind
* @param isSave
* @param isZoom
*/
public function builtInItem(isForwardAndBack:Boolean = true, isLoop:Boolean = true, isPlay:Boolean = true, isPrint:Boolean = true, isQuality:Boolean = true, isRewind:Boolean = true, isSave:Boolean = true, isZoom:Boolean = true ):void
{
rightMenu.builtInItems.forwardAndBack = isForwardAndBack;
rightMenu.builtInItems.loop = isLoop;
rightMenu.builtInItems.play = isPlay;
rightMenu.builtInItems.print = isPrint;
rightMenu.builtInItems.quality = isQuality;
rightMenu.builtInItems.rewind = isRewind;
rightMenu.builtInItems.save = isSave;
rightMenu.builtInItems.zoom = isZoom;
} /**
* ContextMenu属性clipboardMenu,指定是否应使用剪贴板菜单。如果此值为 true,则 clipboardItems 将确定在剪贴板菜单上启用或禁用哪些项。 如果 link 属性为非 null,则将忽略此属性。
* @param enable
*/
public function clipboardMenu(enable:Boolean=false):void
{
rightMenu.clipboardMenu = enable;
} /**
* ContextMenu方法hideBuiltInItems,隐藏指定的 ContextMenu 对象中的所有内置菜单项(“设置”除外)。 如果 Flash Player 的调试器版本正在运行,则会显示“调试”菜单项,尽管对于未启用远程调试功能的 SWF 文件该菜单项会变暗。
*/
public function hideBuiltInItems():void
{
rightMenu.hideBuiltInItems();
} } }
04-17 03:57