[ActionScript 3.0] 自定义右键菜单

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

 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 }

 

posted on 2015-06-19 17:01  晏过留痕  阅读(421)  评论(0编辑  收藏  举报