`
baiyejianxin
  • 浏览: 160921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex中的鼠标右键

    博客分类:
  • Flex
阅读更多

今天用了一小段时间实现了Flex自定义的右键菜单。

 

      在Flex程序中,如果实现自定义的右键菜单,简单的通过ContextMenu类的操作是不行的。不能去掉Flash Player自带的三条信息。

 

      通过参考网上的一些blog,最终找到了解决的方案,那就是屏蔽浏览器的鼠标右键,同时监听鼠标右键,当触发右键点击事件的时候,JavaScript调用Flex程序中的方法生成自定义的右键菜单。

 

      首先添加JavaScript代码(可以修改Flex工程下html-template/index.template.html,防止编译的时候原来写的JavaScript代码全部被清空)

 

 

<script>
function onNsRightClick(e){
    if(e.which == 3){
         FlexTest.openRightClick();
         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();
      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>

 

 

    另外还需要添加如下关键的配置

   改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应用程序开发中,我们经常会遇到需要自定义用户交互行为的需求,比如禁止用户通过鼠标右键弹出默认的上下文菜单。这篇文档将详细介绍如何在Flex项目中实现这一功能,并提供相关的源码参考。 Flex是一种基于...

    flex禁止鼠标右键

    在网页开发中,有时我们可能需要对某些元素或者整个页面设置禁止鼠标右键操作,以防止用户通过右键菜单执行不希望出现的功能,比如复制、查看源代码等。标题"flex禁止鼠标右键"提示我们要关注的是在使用Flex布局的...

    Flex Tree 的右键菜单事件

    右键菜单则为用户提供了一种方便的交互方式,用户可以通过点击鼠标右键触发自定义的上下文菜单,执行特定的操作。本篇文章将深入探讨如何在Flex Tree组件中实现右键菜单。 首先,我们要了解Flex中的Event.MENU_SHOW...

    Flex自定义右键菜单

    要创建一个右键菜单,我们需要监听鼠标右键点击事件,然后动态显示或隐藏菜单。 1. **监听鼠标事件**: - 在Flex组件上,我们可以使用`addMouseListener`方法添加鼠标事件监听器。对于右键点击,我们关注的是`...

    Flex添加右键菜单

    在Flex开发中,有时我们需要为用户界面添加自定义的右键菜单,以便提供更多的交互功能。本教程将指导你如何在Flex项目中实现这一功能,主要涉及以下知识点: 1. **右键菜单库的引入**: 首先,你需要下载一个名为`...

    flex自定义右键菜单 完全屏蔽

    在Flex中,当用户在组件上点击鼠标右键时,通常会弹出默认的系统级右键菜单。为了屏蔽这个菜单,我们需要覆盖组件的`creationComplete`事件,然后监听`contextMenu`事件。在事件处理函数中,我们可以设置`event....

    Flex4自定义右键菜单源码.rar

    3. **处理鼠标事件**:为了让右键点击触发自定义菜单,我们需要监听鼠标右键点击事件。这通常在UIComponent或DisplayObject上完成。 ```actionscript component.addEventListener(MouseEvent.RIGHT_CLICK, ...

    flex实现右键菜单

    在Flex中创建右键菜单主要涉及两个关键组件:`ContextMenu`和`ContextMenuEvent`。`ContextMenu`是显示在鼠标右键点击时的菜单,而`ContextMenuEvent`是触发菜单显示的事件。 1. **创建ContextMenu对象** 要创建一...

    Flex 实现右键菜单

    在ActionScript中,我们可以监听`contextMenu`事件,当用户点击鼠标右键时,阻止默认的事件处理,从而实现屏蔽浏览器的系统菜单。以下是一个简单的示例: ```actionscript stage.addEventListener(ContextMenuEvent...

    flex自制右键菜单

    在Flex中,我们可以通过监听鼠标事件来控制右键菜单的行为。 1. **屏蔽Flex自带右键菜单**: Flex中的UIComponent类提供了默认的上下文菜单(即右键菜单),如果需要屏蔽这一功能,我们需要在相关组件上监听`...

    flex右键功能 画图

    总结一下,本篇文章主要介绍了如何在Flex中实现右键功能,并通过监听鼠标事件来实现在舞台上的动态绘图。这个过程涉及到了事件监听、自定义上下文菜单以及图形绘制等多个知识点。希望对理解Flex的应用开发有所帮助。

    支持火狐IE9的flex右键

    标题中的“支持火狐IE9的flex右键”指的是在Adobe Flex开发的Web应用程序中,实现对Firefox和Internet Explorer 9这两个浏览器的右键菜单功能的支持。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网...

    Flex右键支持

    在Flex中,右键支持是用户交互的一个重要部分,它允许用户通过鼠标右键触发上下文菜单或自定义操作,提升用户体验。本文将深入探讨如何在Flex项目中实现右键支持,并结合提供的资源进行详细解析。 首先,我们需要...

    Flex 3完整的右键自定义菜单Demo

    关于“屏蔽菜单”,在Flex 3中,我们可以通过覆盖默认的鼠标右键事件来达到效果。在组件类中,我们可以监听`MouseEvent.RIGHT_CLICK`事件,并在事件处理函数中阻止事件的默认行为: ```actionscript myComponent....

    flex右键菜单RightClickManager 非Application也可以弹出

    在Flex中,右键菜单是一个常见的需求,可以增强用户体验,提供更多的操作选项。 在Flex中实现右键菜单通常有两种方式,一种是通过Flex内置的ContextMenuItem类,另一种是通过第三方库RightClickManager。原生的...

    flex 自定义右键菜单

    这通常涉及到监听鼠标右键点击事件,然后动态生成并显示菜单。 - 首先,你需要监听`MouseEvent.RIGHT_CLICK`事件。 ``` myComponent.addEventListener(MouseEvent.RIGHT_CLICK, onRightClick); function ...

    flex右键菜单代码

    在Flex编程中,右键菜单(Context Menu)是一种常见的用户交互功能,允许用户在点击鼠标右键时显示自定义的菜单选项。这个“flex右键菜单代码”分享提供了一个实现Flex中右键菜单的示例,这对于提升用户体验和增强...

    flex自定义右键菜单

    这时,我们需要监听鼠标右键点击事件,并手动弹出自定义菜单。以下是一个简单的实现: ```actionscript myDisplayObject.addEventListener(ContextMenuEvent.MENU_SHOW, onContextMenuShow); function ...

    flex 右键菜单 屏蔽原来的

    这通常涉及到阻止浏览器的默认事件处理,可以通过在事件处理函数中调用`event.preventDefault()`来实现,但这需要对组件或舞台添加鼠标右键点击事件监听器: ```actionscript stage.addEventListener(MouseEvent....

    纯CSS3实现鼠标右键显示网页功能菜单特效.zip

    本资源“纯CSS3实现鼠标右键显示网页功能菜单特效.zip”就是这样一个例子,它展示了如何仅用CSS3来创建一个在鼠标右键点击时显示的功能性网页菜单。 首先,我们要理解CSS3中的:hover伪类,它是实现鼠标悬停效果的...

Global site tag (gtag.js) - Google Analytics