屏蔽浏览器的鼠标右键,同时监听鼠标右键,当触发右键点击事件的时候,JavaScript调用Flex程序中的方法生成自定义的右键菜单。
首先添加JavaScript代码(可以修改Flex工程下html-template/index.template.html,防止编译的时候原来写的JavaScript代码全部被清空)
- <script>
- function onNsRightClick(e){
- if(e.which == 3){
- FlexTest.openRightClick();
- e.stopPropagation();
- }
- stopDefault();
<script> function onNsRightClick(e){ if(e.which == 3){ FlexTest.openRightClick(); e.stopPropagation(); } stopDefault();
- returnfalse;
- }
- function onIeRightClick(e){
- if(event.button > 1){
- FlexTest.openRightClick();
- //Flex.openRightClick();//这句话是为了出错让js不再往下执行,从而禁止flash中鼠标右键的现实,但是在状态栏中会报错;
- parent.frames.location.replace('javascript: parent.falseframe');
- e.stopPropagation(); //这句是关键
- }
- stopDefault();
return false; } function onIeRightClick(e){ if(event.button > 1){ FlexTest.openRightClick(); //Flex.openRightClick();//这句话是为了出错让js不再往下执行,从而禁止flash中鼠标右键的现实,但是在状态栏中会报错; parent.frames.location.replace('javascript: parent.falseframe'); e.stopPropagation(); //这句是关键 } stopDefault();
- returnfalse;
- }
- //stopDefault方法是可以阻止浏览器的默认事件触发,试用了下,在IE6下能实现是阻止右键,但是在IE8下就不管事了。
- function stopDefault( e ) {
- if ( e && e.preventDefault ){
- e.preventDefault();
- }else{
- window.event.returnValue = false;
- }
- returnfalse;
- }
- if(navigator.appName == "Netscape"){
- document.captureEvents(Event.MOUSEDOWN);
- document.addEventListener("mousedown", onNsRightClick, true);
- }else{
- document.onmousedown=onIeRightClick;
- }
- </script>
return false; } //stopDefault方法是可以阻止浏览器的默认事件触发,试用了下,在IE6下能实现是阻止右键,但是在IE8下就不管事了。 function stopDefault( e ) { if ( e && e.preventDefault ){ e.preventDefault(); }else{ window.event.returnValue = false; } return false; } if(navigator.appName == "Netscape"){ document.captureEvents(Event.MOUSEDOWN); document.addEventListener("mousedown", onNsRightClick, true); }else{ document.onmousedown=onIeRightClick; } </script>
Flex代码:
- 在<mx:Application>中添加createComplete="{init()}"
- //注册一个回调函数
- private function init():void{
- ExternalInterface("openRightClick",showMenu);
- }
- //菜单位置
- private function showMenu():void{
- tempMenu.x = this.mouseX;
- tempMenu.y = this.mouseY;
- }
- //菜单的布局
- <mx:Canvas id="tempMenu" backgroundColor="0xFFFFFF">
- ...
- </mx:Canvas>
在<mx:Application>中添加createComplete="{init()}" //注册一个回调函数 private function init():void{ ExternalInterface("openRightClick",showMenu); } //菜单位置 private function showMenu():void{ tempMenu.x = this.mouseX; tempMenu.y = this.mouseY; } //菜单的布局 <mx:Canvas id="tempMenu" backgroundColor="0xFFFFFF"> ... </mx:Canvas>
另外还需要添加如下关键的配置
改wmode参数, 将wmode设置为opaque或transparent都可以达到这个效果
- AC_FL_RunContent(
- "src", "playerProductInstall",
- "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
- "width", "100%",
- "height", "100%",
- "align", "middle",
- "id", "FlexTest",
- "wmode", "opaque", //////////////////////注意:这里是关键
- "quality", "high",
- "bgcolor", "#869ca7",
- "name", "FlexTest",
- "allowScriptAccess","sameDomain",
- "type", "application/x-shockwave-flash",
- "pluginspage", "http://www.adobe.com/go/getflashplayer"
- );
相关推荐
在Flex开发中,自定义右键菜单和实现多级右键菜单是一项常见的需求,它能够为用户界面提供更丰富的交互体验。Flex是一个基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIA)。下面我们将深入...
标题提到的"flex自定义右键菜单 完全屏蔽"是指在Flex应用程序中,不仅实现对默认右键菜单的完全屏蔽,还允许开发者根据自己的需求创建并应用自定义的右键菜单。这种方法避免了使用JavaScript进行跨域通信来实现屏蔽...
Flex是一款基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。在这里,我们将深入探讨如何在Flex中实现自定义的右键菜单。 首先,我们要了解Flex中的菜单组件。在Flex SDK中,`mx.controls....
Flex4是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的图形编程模型,使得开发者能够创建交互性强、视觉效果优秀的Web应用。在Flex4中,自定义右键菜单...
本篇文章将深入探讨如何在Flex应用中实现自定义的右键菜单,包括两种主要的方法:系统右键菜单的扩展和完全屏蔽系统菜单以创建自定义菜单。 首先,我们来看第一种方法——扩展系统右键菜单。在Flex中,我们可以利用...
系统右键菜单是在Flex应用中利用ActionScript 3.0直接添加到UI组件上的菜单项。这种实现方式通常用于在不完全屏蔽原生系统右键菜单的情况下,向其添加额外的功能。在Flex中,你可以通过以下步骤实现: - 首先,...
通过以上步骤,我们可以在Flex应用中实现屏蔽系统右键菜单并创建自定义菜单的功能,提升应用的交互性和用户体验。在实际开发中,还可以根据需求调整菜单的布局、样式以及响应的事件处理,以满足各种复杂场景的需求。
总之,Flex 3中的右键自定义菜单功能提供了强大的灵活性,让开发者能够根据应用的需求定制交互体验。通过熟练掌握这一技术,可以提升Flex应用的用户体验,增强用户满意度。在实践中,可以根据具体场景调整菜单项、...
自定义右键菜单在flex的实现想必有很多朋友都没有尝试过吧,下面与大家分享下如何实现,具体代码如下
这可能包括一个简单的Flex项目文件(如.mxml或.as),其中包含自定义菜单的实现代码,以及可能的示例数据或配置文件。开发者可以通过查看和运行这些示例来学习如何在他们的Flex应用中实现相同的功能。 总之,"Flex...
完全屏蔽flex自带的右键菜单,实现自定义右键菜单,附件有完整可运行的例子。 这个问题折腾了一天多,在网上搜了很多资料,几乎都是一样的,转来转去,且讲的不明不白。这里我提供了可运行的全部代码,让你轻松搞定...
总结来说,这个实例展示了如何在Flex中创建自定义的右键菜单,包括隐藏内置菜单项、添加自定义菜单项、绑定事件监听器以及响应用户操作。这是一项基础但重要的技能,对于提升Flex应用的用户体验有着重要作用。通过...
Flex是一个基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。在这里,我们主要探讨如何在Flex项目中实现自定义的右键菜单。 首先,我们需要了解Flex中的上下文菜单(ContextMenu)组件。这是Flex...
导入项目后,可以查看和编辑源码,调试和运行应用程序,以确保右键菜单在不同环境下的正确行为。 6. 示例应用: 一个简单的示例可能是创建一个Tree组件,加载数据,然后在右键点击时显示包含“添加”、“删除”等...
这会阻止Flex默认的右键行为,并准备使用自定义菜单。通常,这会在应用程序创建完成的事件处理函数中进行,如`application1_creationCompleteHandler()`。 4. **监听右键点击事件**: 为需要添加右键菜单的组件...
Flex是一种基于ActionScript 3.0的开放源码框架,主要用于构建富互联网应用程序(RIA)。 首先,我们需要理解Flex的基本架构。Flex使用MXML和ActionScript 3.0进行开发,MXML是一种声明式语言,用于描述用户界面的...
3. **自定义菜单项的事件处理**: 每个`ContextMenuItem`都有自己的事件监听器,可以添加自定义的行为。例如,当用户点击"菜单项1"时,可以执行特定的函数: ```actionscript menuItem1.addEventListener...
本文将深入探讨如何在Flex环境中实现自定义的右键菜单,包括屏蔽浏览器的默认右键菜单,创建XML格式的多级菜单,以及设置菜单出现位置的自适应策略。 首先,我们需要了解Flex屏蔽浏览器系统右键的基本方法。在...
这个“flex右键菜单代码”分享提供了一个实现Flex中右键菜单的示例,这对于提升用户体验和增强应用程序功能具有重要意义。 Flex是一个开源的、基于ActionScript和Flash Player的开发框架,主要用于创建富互联网应用...