[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 }

 

你可能感兴趣的:(actionscript)