flash取消右键菜单的方法

RT.......... RT....... 展开
 我来答
匿名用户
2013-07-29
展开全部
转贴 在做一个实验时遇到一个禁止flash的右键功能的问题。在网上找了很多方法,要不就完全不行,要不就浏览器不兼容。Google了一下国外的情况,终于找到了一个不错的方法。该方法用了javascript和as的结合,完美解决了问题。   以下是javascript部分代码:   var RightClick = {   /**   * Constructor   */   init: function () {   this.FlashObjectID = “customRightClick”;   this.FlashContainerID = “flashcontent”;   this.Cache = this.FlashObjectID;   if(window.addEventListener){   window.addEventListener(“mousedown”, this.onGeckoMouse(), true);   } else {   document.getElementById(this.FlashContainerID).onmouseup = function() { document.getElementById(RightClick.FlashContainerID).releaseCapture(); }   document.oncontextmenu = function(){ if(window.event.srcElement.id == RightClick.FlashObjectID) { return false; } else { RightClick.Cache = “nan”; }}   document.getElementById(this.FlashContainerID).onmousedown = RightClick.onIEMouse;   }   },   /**   * GECKO / WEBKIT event overkill   * @param {Object} eventObject   */   killEvents: function(eventObject) {   if(eventObject) {   if (eventObject.stopPropagation) eventObject.stopPropagation();   if (eventObject.preventDefault) eventObject.preventDefault();   if (eventObject.preventCapture) eventObject.preventCapture();   if (eventObject.preventBubble) eventObject.preventBubble();   }   },   /**   * GECKO / WEBKIT call right click   * @param {Object} ev   */   onGeckoMouse: function(ev) {   return function(ev) {   if (ev.button != 0) {   RightClick.killEvents(ev);   if(ev.target.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {   RightClick.call();   }   RightClick.Cache = ev.target.id;   }   }   },   /**   * IE call right click   * @param {Object} ev   */   onIEMouse: function() {   if (event.button> 1) {   if(window.event.srcElement.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {   RightClick.call();   }   document.getElementById(RightClick.FlashContainerID).setCapture();   if(window.event.srcElement.id)   RightClick.Cache = window.event.srcElement.id;   }   },   /**   * Main call to Flash External Interface   */   call: function() {   document.getElementById(this.FlashObjectID).rightClick();   }   }   var RightClick = {    /**    * Constructor    */    init: function () {    this.FlashObjectID = "customRightClick";    this.FlashContainerID = "flashcontent";    this.Cache = this.FlashObjectID;    if(window.addEventListener){    window.addEventListener("mousedown", this.onGeckoMouse(), true);    } else {    document.getElementById(this.FlashContainerID).onmouseup = function() { document.getElementById(RightClick.FlashContainerID).releaseCapture(); }    document.oncontextmenu = function(){ if(window.event.srcElement.id == RightClick.FlashObjectID) { return false; } else { RightClick.Cache = "nan"; }}    document.getElementById(this.FlashContainerID).onmousedown = RightClick.onIEMouse;    }    },    /**    * GECKO / WEBKIT event overkill    * @param {Object} eventObject    */    killEvents: function(eventObject) {    if(eventObject) {    if (eventObject.stopPropagation) eventObject.stopPropagation();    if (eventObject.preventDefault) eventObject.preventDefault();    if (eventObject.preventCapture) eventObject.preventCapture();    if (eventObject.preventBubble) eventObject.preventBubble();    }    },    /**    * GECKO / WEBKIT call right click    * @param {Object} ev    */    onGeckoMouse: function(ev) {    return function(ev) {    if (ev.button != 0) {    RightClick.killEvents(ev);    if(ev.target.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {    RightClick.call();    }    RightClick.Cache = ev.target.id;    }    }    },    /**    * IE call right click    * @param {Object} ev    */    onIEMouse: function() {    if (event.button> 1) {    if(window.event.srcElement.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {    RightClick.call();    }    document.getElementById(RightClick.FlashContainerID).setCapture();    if(window.event.srcElement.id)    RightClick.Cache = window.event.srcElement.id;    }    },    /**    * Main call to Flash External Interface    */    call: function() {    document.getElementById(this.FlashObjectID).rightClick();    }   }以下是as部分代码:      package {      import flash.display.*;   import flash.external.ExternalInterface;      public classclass RightClick extends Sprite   {      public function RightClick()   {   stage.scaleMode = StageScaleMode.NO_SCALE;   stage.align = StageAlign.TOP_LEFT;      var methodName:String = “rightClick”;   var method:Function = onRightClick;   ExternalInterface.addCallback(methodName, method);   }      private function onRightClick():void {      var mx:int = stage.mouseX;   var my:int = stage.mouseY;      if(my> 0 && my 0 && mx
  // YOUR CODE HERE   }   }   }         }   package {       import flash.display.*;    import flash.external.ExternalInterface;       public classclass RightClick extends Sprite    {       public function RightClick()    {    stage.scaleMode = StageScaleMode.NO_SCALE;    stage.align = StageAlign.TOP_LEFT;       var methodName:String = "rightClick";    var method:Function = onRightClick;    ExternalInterface.addCallback(methodName, method);    }       private function onRightClick():void {       var mx:int = stage.mouseX;    var my:int = stage.mouseY;       if(my> 0 && my 0 && mx支持的浏览器有:      WINDOWS VISTA      Internet Explorer 7.0.6001 (16549)   Firefox 2.0.0.6 (with mouse gestures disabled)   Maxthon 2 (with mouse gestures disabled)   Safari 3.0.3 (522.15.5)   Windows XP SP2      Internet Explorer 6   Internet Explorer 7   Maxthon 2 (with mouse gestures disabled)   FireFox 2 (with mouse gestures disabled)   Safari 3   Netscape 8   Mac OSX 10.4.10 (Intel)      Firefox 2   Safari 3.0.3
匿名用户
2013-07-29
展开全部
  Showmenu命令是用来设置是(True)否(false)显示Flash动画播放器的快捷菜单的全部指令,即右击鼠标时弹出的菜单,默认为True,如果要取消弹出的菜单,必须在第一帧这样设置:
  Fscommand ("showmenu","false");
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式