一.定义菜单项
用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);  }
}

转载于:https://www.cnblogs.com/studynote/archive/2013/04/10/3013119.html

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

  1. 【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ)

    DEMO: http://sources.ikeepstudying.com/menu-mail-qq/ 一.这是什么样的一个插件 我们都知道,默认状态下,我们右键web页面,会出现一个上下文菜单,例 ...

  2. AS3 CookBook学习整理(八)

    1. AS3的事件机制 事件流机制即为捕获--目标--冒泡,分别对应event.eventPhase的值1(EventPhase.CAPTURING_PHASE),2(EventPhase.AT_TA ...

  3. android 动态contextmenu,Android成长日记-ContextMenu实现上下文菜单

    一. ContextMenu的组成 标题以及标题图标 菜单内容 菜单内容的点击事件 二. ContextMenu与OptionMenu的区别 OptionMenu对应的是activity,一个acti ...

  4. 从零开始学习jQuery (八) 插播:jQuery实施方案

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  5. 学习Kotlin(八)其他技术

    推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...

  6. C++学习基础八——重载输入和输出操作符

    C++学习基础八--重载输入和输出操作符 一.重载输入操作符的要点: 1.返回值为istream &. 2.第一个参数为istream &in. 3.第二个参数为自定义类型的引用对象( ...

  7. linux学习第八周总结

    linux学习第八周总结 本周学习了两个服务,DNS和ansible 由于这些服务很复杂,我也只能是到达刚了解或者是刚刚入门的程度,所以只说一些简单基本的东西,简单总结. 一.DNS服务 1.简介 域 ...

  8. Android音视频学习系列(八) — 基于Nginx搭建(rtmp、http)直播服务器

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  9. 《Two Dozen Short Lessons in Haskell》学习(八)- Function Types, Classes, and Polymorphism

    <Two Dozen Short Lessons in Haskell>(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学 ...

最新文章

  1. [YY题]HDOJ5288 OO’s Sequence
  2. 广告基本知识-在线广告的市场
  3. BugKuCTF WEB 计算器
  4. 计组-输入输出系统小结
  5. Delphi识别读取验证码
  6. web 三联发票针式打印_打印机共享操作,其实没想象的那么难
  7. 有关emoji表情以及utf-16编码
  8. Elasticsearch OOM(内存溢出)
  9. pytorch_GPU安装
  10. linux空磁盘划分,Linux 磁盘划分
  11. swift 图片压缩
  12. 【重点】心田花开:三年级教材知识点汇总
  13. HDU 1873 优先队列 Java版
  14. 前端:简述表单提交前如何进行数据验证
  15. Python 视频转换为图片 与 图片转换为视频
  16. 【观点】如何度过自己的研究生生涯,看看院士的回答,兴许会有一些收获。
  17. Vitamio的使用
  18. 详谈短信开发-SMPP的WAP短信协议展开格式
  19. 「建议收藏」第一人称视角带你走进 Vue 源码世界
  20. 【算法】时域处理方法

热门文章

  1. nodejs链接kafka示例(producer、consumer)
  2. XStream xml与javabean之间的互转
  3. 安全观之我见(三):省银之道在预防
  4. 大山深处,有一所希望学校
  5. visual stadio 添加 Extjs 智能提示!
  6. how to figure out problems in the ardunio nano force senser? 1,2,3,4
  7. why do you want to university of cambridge?
  8. 明天mbzuai面试的准备,严阵以待
  9. 发现一个骨灰级图形学大神的博客
  10. 浅谈PHP的Public、Protected、Private三种方法的区别