900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ActionScript3(AS3)类库学习之(八)——自定义上下文菜单

ActionScript3(AS3)类库学习之(八)——自定义上下文菜单

时间:2021-11-02 11:39:28

相关推荐

ActionScript3(AS3)类库学习之(八)——自定义上下文菜单

一.定义菜单项

用ContextMenuItem类来表示上下文菜单中的项

1.新建菜单项

var menuitem:ContextMenuItem = new ContextMenuItem(caption);

2.菜单项标题的限制

a.菜单项必须包含一个可见字符且不能超过 100 个字符。

b.控制字符、换行符和其他空白字符将被忽略。

c.与内置菜单项或其他自定义菜单项相同的标题将被忽略,比较时将不考虑大小写、标点符号或空白。

d.不允许使用以下标题及其中文

Save

Zoom In

Zoom Out

100%

Show All

Quality

Play

Loop

Rewind

Forward

Back

Movie not loaded

About

Print

Show Redraw Regions

Debugger

Undo

Cut

Copy

Paste

Delete

Select All

Open

Open in new window

Copy link

e.标题中不能包含以下词:

Adobe

Macromedia

Flash Player

Settings

3.用separatorBefore表示指定的菜单项上方是否显示分隔条。

4.用enabled和visible来控制菜单项是否可用,是否可见

5.监听flash.events.ContextMenuEvent.MENU_ITEM_SELECT来添加菜单项点击事件

二.定义菜单

1.新建菜单

var menu:ContextMenu = new ContextMenu();

2.插入自定义菜单项

所有的自定义菜单项都存放在ContextMenu对象的customItems数组里,通过将菜单项加入数组来增加菜单项

menu.customItems.push(menuitem);

注意:自定义菜单项不能超过15个。

3.控制内置菜单项

用hideBuiltInItems()来隐藏菜单中的所有内置菜单项("设置"除外)

通过设置builtInItems属性来控制forwardAndBack、loop、play、print、quality、rewind、save 和 zoom菜单项

用clipboardMenu来指定是否应使用剪贴板菜单。

通过设置clipboardItems属性来控制cut、copy、paste、delete 和 selectAll菜单项。

4.设置link属性,以显示链接上下文菜单

三.使用自定义菜单

this.contextMenu = menu;

四.运行时菜单

如果想要在运行时根据运行状态定义不同的菜单,可以监听menuselect事件

下面的例子在点红矩形时添加菜单项红色,蓝矩形时添加菜单项蓝色

var rect1:MenuRect = new MenuRect(100, 100);rect1.color = 0xFF0000;rect1.mnname = "red";var rect2:MenuRect = new MenuRect(100,100);rect2.color = 0x0000FF;rect2.mnname = "blue";rect2.x = 120;addChild(rect1);addChild(rect2);var menu:ContextMenu = new ContextMenu();menu.addEventListener(ContextMenuEvent.MENU_SELECT, showmenu);this.contextMenu = menu;private function showmenu(e:ContextMenuEvent):void{var menu:ContextMenu = e.target as ContextMenu;menu.customItems.length = 0;if(e.mouseTarget is MenuRect){var rect:MenuRect = e.mouseTarget as MenuRect;var mi:ContextMenuItem = new ContextMenuItem(rect.mnname);menu.customItems.push(mi);

}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。