- 浏览: 108151 次
- 性别:
- 来自: 广州
文章分类
最新评论
有些东西只有用到了才会去看,才会去寻找答案。这真的挺有道理,毕竟人的精力有限。今天对FLASH右键菜单专门做了下研究,有高手看到觉得不足的地方请指出。
首先来了解ContextMenu的基本常识。
ContextMenu 类提供对 Flash Player 上下文菜单项的运行时控制,当用户在 Flash Player 中右键单击(在 Windows 中)或按住 Control 键并单击(在 Macintosh 中)时,将出现上下文菜单。您可以使用 ContextMenu 类的方法和属性添加自定义菜单项,控制内置上下文菜单项的显示(例如"放大"和"打印"),或者创建菜单的副本。
Flash Player 具有三种类型的上下文菜单:标准菜单(当您在 Flash Player 中右键单击时出现)、编辑菜单(当您在可选择或可编辑的文本字段上右键单击时出现)和错误菜单(当 SWF 文件未能加载到 Flash Player 中时出现)。只有标准菜单和编辑菜单才能使用 ContextMenu 类进行修改。
自定义菜单项始终出现在 Flash Player 上下文菜单的顶部,并位于所有可见内置菜单项之上;内置菜单项和自定义菜单项之间由一个分隔条加以分隔。向上下文菜单添加的自定义菜单项不得超过 15 个。您不能从上下文菜单中删除"设置"菜单项。在 Flash 中,必须有"设置"菜单项,有了这个菜单项后,用户才能访问影响其计算机上的隐私和存储的设置。您也不能从上下文菜单中删除"关于"菜单项,必须在使用这个菜单项后,用户才能了解正在使用的 Flash Player 的版本信息。
必须使用构造函数 new ContextMenu() 创建 ContextMenu 对象才能调用其方法。
一、ContextMenu.builtInItems 属性
public builtInItems : Object
具有以下布尔属性的对象:zoom、quality、play、loop、rewind、forward_back 和 print。将这些变量设置为 false 将删除指定的 ContextMenu 对象中的相应菜单项。这些属性是可枚举的属性,默认情况下设置为 true。
如:对于附加到 SWF 文件的当前时间轴的 ContextMenu 对象 my_cm,内置"品质"和"打印"菜单项被禁用。
var my_cm:ContextMenu = new ContextMenu (); my_cm.builtInItems.quality = false; my_cm.builtInItems.print = false; this.menu = my_cm;
二、ContextMenu 构造函数
public ContextMenu([callbackFunction:Function])
callbackFunction:Function [可选] - 对函数的引用,该函数在用户右键单击或按住 Control 键单击菜单并在菜单显示之前被调用。
如:隐藏上下文菜单中的所有内置对象。(但是,由于不能禁用"设置"和"关于"菜单项,所以它们仍会出现。)
var newMenu:ContextMenu = new ContextMenu(); newMenu.hideBuiltInItems(); this.menu = newMenu;
三、copy(ContextMenu.copy 方法)
public copy() : ContextMenu
创建指定的 ContextMenu 对象的副本。该副本继承初始菜单对象的所有属性。
如:创建名为 my_cm 的 ContextMenu 对象的副本(其内置菜单项被隐藏),并添加具有文本"Save..."的菜单项。然后,该示例创建 my_cm 的副本,并将它分配给变量 clone_cm,该变量继承原始菜单的所有属性。
var my_cm:ContextMenu = new ContextMenu(); my_cm.hideBuiltInItems(); var menuItem_cmi:ContextMenuItem = new ContextMenuItem("Save...",saveHandler); my_cm.customItems.push(menuItem_cmi); function saveHandler(obj, menuItem) { // saveDocument(); // custom function (not shown) trace("something"); } clone_cm = my_cm.copy(); this.menu = my_cm; for (var j in clone_cm.customItems) { trace("clone_cm-> "+clone_cm.customItems[j].caption); } for (var j in my_cm.customItems) { trace("my_cm-> "+my_cm.customItems[j].caption); }
四、customItems(ContextMenu.customItems 属性)
public customItems : Array
ContextMenuItem 对象的数组。数组中的每个对象表示您已经定义的上下文菜单项。使用此属性可添加、删除或修改这些自定义菜单项。若要添加新的菜单项,请首先创建一个新的 ContextMenuItem 对象,然后将其添加到 menu_mc .customItems 数组(例如使用 Array.push())。
如:创建一个新的名为 menuItem_cmi 的自定义菜单项(其标题为"发送电子邮件")和一个名为 emailHandler 的回调处理函数。然后,使用 customItems 数组将新的菜单项添加到 ContextMenu 对象 my_cm。最后,将新菜单附加到名为 email_mc 的影片剪辑。若要使此示例正常运行,请在舞台上创建影片剪辑实例,然后使用属性检查器将该实例命名为 email_mc。在"测试影片"模式中,如果在鼠标指针位于 email_mc 影片剪辑上方时弹出上下文菜单,将出现新的上下文菜单项。
var my_cm:ContextMenu = new ContextMenu(); var menuItem_cmi:ContextMenuItem = new ContextMenuItem("Send e-mail",emailHandler); my_cm.customItems.push(menuItem_cmi); email_mc.menu = my_cm; function emailHandler() { trace("sending email"); }
五、hideBuiltInItems(ContextMenu.hideBuiltInItems 方法)
public hideBuiltInItems() : Void
隐藏指定的 ContextMenu 对象中的所有内置菜单项("设置"除外)。如果 Flash 调试播放器正在运行,则显示"调试"菜单项,但如果 SWF 文件未启用远程调试功能,则该菜单项将变暗。
如:创建其内置菜单项已隐藏("打印"除外)的新的 ContextMenu 对象 my_cm。然后将该菜单对象附加到当前时间轴。
var my_cm:ContextMenu = new ContextMenu(); my_cm.hideBuiltInItems(); my_cm.builtInItems.print = true; this.menu = my_cm;
六、onSelect(ContextMenu.onSelect 处理函数)
onSelect = function(item:Object, item_menu:Object) {}
在用户调用 Flash Player 上下文菜单并在该菜单实际显示之前调用。此事件处理函数允许根据当前应用程序状态自定义上下文菜单的内容。
如:确定对哪种类型的对象调用了上下文菜单。
my_cm:ContextMenu = new ContextMenu(); function menuHandler(obj:Object, menu:ContextMenu) { if (objinstanceofMovieClip) { trace("Movie clip: " + obj); } if (objinstanceofTextField) { trace("Text field: " + obj); } if (objinstanceofButton) { trace("Button: " + obj); } } my_cm.onSelect = menuHandler; my_mc.menu = my_cm; my_btn.menu = my_cm;
发表评论
-
AS3动态获得类名及类的方法
2012-10-26 17:53 17981.获得某个实例对象的类名:getQualifiedClass ... -
Vector初始化的各种写法
2012-10-16 14:56 4845var i:int = 0; var j:int = ... -
as3中数组array与vector的区别
2012-10-15 14:47 1498ActionScript 3.0 中可用的另一种索引数组 ... -
关于ADDED_TO_STAGE事件
2012-08-13 16:37 810在将显示对象直接添加到舞台显示列表或将包含显示对象的子树 ... -
关于读取舞台大小各浏览器之间的差异
2012-08-13 16:38 793因为在做项目的时候遇到的怪异问题 ie下的player会sta ... -
Flash-如何改变动态文本透明度
2012-08-13 16:39 1712因为Flash的系统字体不直接支持透明,所以我们得通过嵌 ... -
as跨域问题解决总结
2012-08-14 15:36 1617总结一下在工作中遇 ... -
AS3参数的传址与传值
2012-08-14 15:37 1185//as3里面规定,属于基元数据类型(包括 Boolea ... -
AS3 数组深度复制
2012-08-15 09:55 829//简单复制后,修改副本会修改原对象,深度复制后,修改副 ... -
自定义异常类
2012-08-10 15:19 882package { import flash.err ... -
hasEventListener()与willTrigger()区别
2012-08-10 15:17 1289hasEventListener()方法: 检查 Ev ... -
写AS3需要养成好的编码习惯
2012-08-10 15:14 867因为AS3的垃圾回收是自动的,如果你某个对象存在被引用, ... -
as3 代码优化
2012-08-10 14:41 1482var obj:Object = {}; 比 var obj: ... -
as3对象池应用
2012-08-10 12:06 1227为什么使用对象池? 我们先来看一个例子:假 ... -
AS3 复制可视对象
2012-08-09 16:44 1242复制舞台上的影片剪 反射方法: 需要复制的舞台对象 ... -
AS3动态获得类名及类的方法
2012-08-09 16:21 8111.获得某个实例对象的类名:getQualifiedClass ... -
Flash流式视频提示点及回调函数
2012-08-09 16:21 1480流式传输视频文件 若要流式传输 Flash Media Se ... -
深度探索as3的事件机制
2012-08-08 11:57 1857as3的事件机制很好用 ... -
AS3数组转换XML
2012-08-08 11:08 928package { import flash.displa ... -
FLASH自定义组件
2012-08-08 10:43 2118由于工作需要,最近开始学习FLASH自定义组件的开发。在开发过 ...
相关推荐
"VB屏蔽Flash右键菜单"这一主题主要涉及到以下几个知识点: 1. **VB与ActiveX控件**:VB支持通过ActiveX控件来嵌入各种组件,包括Flash。ActiveX是微软推出的一种技术,允许不同应用程序间共享组件。在VB中,我们...
flash右键菜单命令生成器,一键傻瓜式操作,让您顺利编写右键菜单,方便到家。
flash 右键菜单插件 支持自定义flash 右键菜单 操作简便。
禁用Flash右键菜单通常是通过Flash ActionScript实现的。ActionScript是Flash的编程语言,用于控制Flash对象的行为。以下是一个简单的ActionScript代码示例,用于禁用Flash的右键菜单: ```actionscript import ...
在VB(Visual Basic)编程环境中,自定义Flash右键菜单是一项常见的需求,它涉及到用户界面的定制化,以便提供更加个性化的交互体验。Flash右键菜单的实现主要依赖于ActiveX控件,因为Flash在VB中通常是通过ActiveX...
本压缩包“易语言源码易语言屏蔽超文本浏览框flash右键菜单源码.rar”提供了一段易语言编写的源代码,用于实现一个特定的功能:屏蔽超文本浏览框(WebBrowser控件)中的Flash内容的右键菜单。 在Windows应用程序...
在标题“Js完美屏蔽网页Flash右键菜单.rar”中提到的问题,是关于如何利用JavaScript来防止用户在Flash对象上触发默认的右键菜单。这个功能在某些情况下可能很有用,例如保护内容不被轻易复制或者提供更加定制化的...
"Flash 右键菜单生成器2.0"是一款专为Flash开发者设计的实用工具,它能帮助用户快速、便捷地生成符合需求的Flash右键菜单代码,大大提高了开发效率。 首先,我们来理解一下什么是Flash右键菜单。在Flash内容中,...
"真正的VB.net屏蔽flash右键菜单"项目就是这样一个实例,它展示了如何在Visual Studio 2008中实现这一功能。 首先,我们要理解Flash对象在Windows应用程序中的集成。VB.NET支持ActiveX控件,使我们能够将Flash ...
"flash as 的右键菜单代码"这个主题,指的是如何使用ActionScript为Flash项目添加自定义的右键菜单功能。在描述中提到的"fla文件"是Flash的专业源文件格式,用于存储动画、图形、声音和其他交互元素。我们可以从以下...
### Flash右键菜单自定义调整方法 #### 一、引言 在Flash应用开发中,右键菜单功能是一项常用且实用的功能。用户可以通过点击右键访问到一系列预设的选项来实现诸如全屏切换、邮件联系等操作。本文将详细介绍如何...
flash右键菜单的创建
- 如果你的Flash内容有自定义的右键菜单,这种方法可能会阻止这些自定义功能的使用。在实施之前,确保你理解这可能带来的后果。 通过以上步骤,你可以成功地在Delphi中屏蔽掉TShockwaveFlash控件的右键菜单,并用...
小炫酷flash右键菜单超级无敌加强版,最新研究出品,帮你解决无法个性化使用flash右键的问题,我们还配套一个生成器,你可以访问这个地址来下载:http://download.csdn.net/detail/yaonewnew/7561421
标题提到的方法是一种通过引入外部JavaScript库来实现屏蔽Flash右键菜单的方案。在这个例子中,压缩包中的文件`RightClick_0.6.3`很可能是一个JavaScript库,专门用于处理这种问题。这个库的工作原理可能是通过动态...
易语言屏蔽Flash右键菜单的功能主要涉及到两个关键点:一是对超文本浏览框的控制,二是对Flash内容的处理。在易语言中,通常会使用内置的“网页浏览”组件来实现网页显示功能。这个组件能够加载HTML内容,并且支持...
易语言屏蔽超文本浏览框flash右键菜单源码,屏蔽超文本浏览框flash右键菜单,消息回调函数1,消息回调函数2,取网页句柄,取子窗口句柄,SetWindowLong,GetWindow,GetClassName,CallWindowProcA,FindWindowEx
通过这种方法,我们能够有效地屏蔽Flash控件的右键菜单,并且能够感知和处理鼠标左键消息,使Flash与应用程序的交互更加自然,提升用户体验。尽管上述示例基于Visual C++ 6.0和MFC,但同样的原理也适用于其他支持...
利用mfc窗体屏蔽flash的右键菜单,并且添加自定义的右键菜单。 源码包含MFC源码与flash源码。两者缺一不可。 MFC源码用vs2008开发。flash源码用cs4、as3开发。 绝对原创!转载请标明出处!
在网页开发中,有时为了保护内容不被轻易篡改或者防止用户进行不必要的操作,开发者可能会选择屏蔽Flash右键菜单。这个实例"屏蔽flash右键包括“设置”“关于”"正是针对这一需求提供的解决方案。Flash是一款广泛...