1 package
2 {
3 import flash.display.Sprite;
4 import flash.events.ContextMenuEvent;
5 import flash.net.navigateToURL;
6 import flash.net.URLRequest;
7 import flash.ui.ContextMenu;
8 import flash.ui.ContextMenuBuiltInItems;
9 import flash.ui.ContextMenuItem;
10
11 /**
12 * ...
13 * @author Frost.Yen
14 */
15 public class AddRightMenu
16 {
17 private var rightMenu:ContextMenu;
18 public function AddRightMenu(obj:Object):void
19 {
20 rightMenu = new ContextMenu();
21 obj.cOntextMenu= rightMenu;
22 }
23
24 /**
25 * 添加右键菜单并链接
26 * ContextMenuItem的属性customItems,ContextMenuItem 对象的数组。 数组中的每个对象表示您已经定义的上下文菜单项。 使用此属性可添加、删除或修改这些自定义菜单项。若要添加新的菜单项,请创建一个 ContextMenuItem 对象,然后将其添加到 customItems 数组(例如使用 Array.push())。
27 * @param name 菜单名称
28 * @param url 链接地址
29 */
30 public function appendRightMenu(name:String,url:String):void
31 {
32 var item:COntextMenuItem= new ContextMenuItem(name,true);
33 item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuSelect);
34 rightMenu.customItems.push(item);
35 function onMenuSelect(e:ContextMenuEvent):void
36 {
37 navigateToURL(new URLRequest(url), "_blank");
38 }
39 }
40
41 /**
42 * ContextMenu属性link,链接的 URLRequest。如果此属性为 null,则显示标准上下文菜单。如果此属性为非 null,则显示链接上下文菜单并对指定的 URL 执行操作。
43 * @param url
44 */
45 public function menuLink(url:String):void
46 {
47 rightMenu.link = new URLRequest(url);
48 }
49
50 /**
51 * ContextMenu属性builtInItems ,一个对象,它包含 ContextMenuBuiltInItems 类的以下属性:forwardAndBack、loop、play、print、quality、rewind、save 和 zoom。 将这些属性设置为 false 将删除指定的 ContextMenu 对象中的对应菜单项。 这些属性是可枚举的属性,默认情况下设置为 true。
52 * @param isForwardAndBack
53 * @param isLoop
54 * @param isPlay
55 * @param isPrint
56 * @param isQuality
57 * @param isRewind
58 * @param isSave
59 * @param isZoom
60 */
61 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
62 {
63 rightMenu.builtInItems.forwardAndBack = isForwardAndBack;
64 rightMenu.builtInItems.loop = isLoop;
65 rightMenu.builtInItems.play = isPlay;
66 rightMenu.builtInItems.print = isPrint;
67 rightMenu.builtInItems.quality = isQuality;
68 rightMenu.builtInItems.rewind = isRewind;
69 rightMenu.builtInItems.save = isSave;
70 rightMenu.builtInItems.zoom = isZoom;
71 }
72
73 /**
74 * ContextMenu属性clipboardMenu,指定是否应使用剪贴板菜单。如果此值为 true,则 clipboardItems 将确定在剪贴板菜单上启用或禁用哪些项。 如果 link 属性为非 null,则将忽略此属性。
75 * @param enable
76 */
77 public function clipboardMenu(enable:Boolean=false):void
78 {
79 rightMenu.clipboardMenu = enable;
80 }
81
82 /**
83 * ContextMenu方法hideBuiltInItems,隐藏指定的 ContextMenu 对象中的所有内置菜单项(“设置”除外)。 如果 Flash Player 的调试器版本正在运行,则会显示“调试”菜单项,尽管对于未启用远程调试功能的 SWF 文件该菜单项会变暗。
84 */
85 public function hideBuiltInItems():void
86 {
87 rightMenu.hideBuiltInItems();
88 }
89
90 }
91
92 }