`

教你如何修改FLASH右键菜单

阅读更多

 

有些东西只有用到了才会去看,才会去寻找答案。这真的挺有道理,毕竟人的精力有限。今天对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;
分享到:
评论

相关推荐

    VB 屏蔽 flash 右键菜单

    "VB屏蔽Flash右键菜单"这一主题主要涉及到以下几个知识点: 1. **VB与ActiveX控件**:VB支持通过ActiveX控件来嵌入各种组件,包括Flash。ActiveX是微软推出的一种技术,允许不同应用程序间共享组件。在VB中,我们...

    flash右键菜单命令生成器

    flash右键菜单命令生成器,一键傻瓜式操作,让您顺利编写右键菜单,方便到家。

    flash 右键菜单插件

    flash 右键菜单插件 支持自定义flash 右键菜单 操作简便。

    Flash+js禁用flash右键

    禁用Flash右键菜单通常是通过Flash ActionScript实现的。ActionScript是Flash的编程语言,用于控制Flash对象的行为。以下是一个简单的ActionScript代码示例,用于禁用Flash的右键菜单: ```actionscript import ...

    VB 自定义flash 右键菜单

    在VB(Visual Basic)编程环境中,自定义Flash右键菜单是一项常见的需求,它涉及到用户界面的定制化,以便提供更加个性化的交互体验。Flash右键菜单的实现主要依赖于ActiveX控件,因为Flash在VB中通常是通过ActiveX...

    易语言源码易语言屏蔽超文本浏览框flash右键菜单源码.rar

    本压缩包“易语言源码易语言屏蔽超文本浏览框flash右键菜单源码.rar”提供了一段易语言编写的源代码,用于实现一个特定的功能:屏蔽超文本浏览框(WebBrowser控件)中的Flash内容的右键菜单。 在Windows应用程序...

    flash右键菜单

    flash右键菜单可自己更改调整,flash右键菜单可自己更改调整,flash右键菜单可自己更改调整,,flash右键菜单可自己更改调整,,flash右键菜单可自己更改调整

    Js完美屏蔽网页Flash右键菜单.rar

    在标题“Js完美屏蔽网页Flash右键菜单.rar”中提到的问题,是关于如何利用JavaScript来防止用户在Flash对象上触发默认的右键菜单。这个功能在某些情况下可能很有用,例如保护内容不被轻易复制或者提供更加定制化的...

    Flash 右键菜单生成器2.0

    "Flash 右键菜单生成器2.0"是一款专为Flash开发者设计的实用工具,它能帮助用户快速、便捷地生成符合需求的Flash右键菜单代码,大大提高了开发效率。 首先,我们来理解一下什么是Flash右键菜单。在Flash内容中,...

    真正的VB.net屏蔽flash右键菜单

    "真正的VB.net屏蔽flash右键菜单"项目就是这样一个实例,它展示了如何在Visual Studio 2008中实现这一功能。 首先,我们要理解Flash对象在Windows应用程序中的集成。VB.NET支持ActiveX控件,使我们能够将Flash ...

    flash as 的右键菜单代码

    "flash as 的右键菜单代码"这个主题,指的是如何使用ActionScript为Flash项目添加自定义的右键菜单功能。在描述中提到的"fla文件"是Flash的专业源文件格式,用于存储动画、图形、声音和其他交互元素。我们可以从以下...

    flash右键菜单的创建

    flash右键菜单的创建

    完全屏蔽Delphi中Flash的右键菜单

    - 如果你的Flash内容有自定义的右键菜单,这种方法可能会阻止这些自定义功能的使用。在实施之前,确保你理解这可能带来的后果。 通过以上步骤,你可以成功地在Delphi中屏蔽掉TShockwaveFlash控件的右键菜单,并用...

    小炫酷flash右键菜单超级无敌加强版

    小炫酷flash右键菜单超级无敌加强版,最新研究出品,帮你解决无法个性化使用flash右键的问题,我们还配套一个生成器,你可以访问这个地址来下载:http://download.csdn.net/detail/yaonewnew/7561421

    网页中屏蔽flash右键

    标题提到的方法是一种通过引入外部JavaScript库来实现屏蔽Flash右键菜单的方案。在这个例子中,压缩包中的文件`RightClick_0.6.3`很可能是一个JavaScript库,专门用于处理这种问题。这个库的工作原理可能是通过动态...

    易语言屏蔽超文本浏览框flash右键菜单

    易语言屏蔽超文本浏览框flash右键菜单源码,屏蔽超文本浏览框flash右键菜单,消息回调函数1,消息回调函数2,取网页句柄,取子窗口句柄,SetWindowLong,GetWindow,GetClassName,CallWindowProcA,FindWindowEx

    利用MFC彻底掉flash右键菜单

    利用mfc窗体屏蔽flash的右键菜单,并且添加自定义的右键菜单。 源码包含MFC源码与flash源码。两者缺一不可。 MFC源码用vs2008开发。flash源码用cs4、as3开发。 绝对原创!转载请标明出处!

    屏蔽flash右键包括“设置”“关于”

    在网页开发中,有时为了保护内容不被轻易篡改或者防止用户进行不必要的操作,开发者可能会选择屏蔽Flash右键菜单。这个实例"屏蔽flash右键包括“设置”“关于”"正是针对这一需求提供的解决方案。Flash是一款广泛...

    SilverLight4实现右键菜单效果

    通过理解和掌握以上知识点,你可以成功地在Silverlight 4应用中实现右键菜单效果。这个实例提供了实践这些概念的机会,通过研究和调试提供的代码,你将能够更好地理解Silverlight中用户界面和事件处理的工作原理。在...

    C#插入flash并且屏蔽鼠标右键,绝对实用,简单明了,项目在资源里

    请注意,尽管这样可以屏蔽Flash内部的右键菜单,但是由于WebBrowser控件本身还允许用户进行右键操作,所以你可能还需要覆盖WebBrowser控件的`ContextMenu`事件,以阻止全局的右键点击: ```csharp this....

Global site tag (gtag.js) - Google Analytics