<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    咖啡伴侶

    呆在上海
    posts - 163, comments - 156, trackbacks - 0, articles - 2

    Flex自定義右鍵菜單-1屏蔽默認(rèn)菜單

    Posted on 2011-11-28 17:01 oathleo 閱讀(2293) 評(píng)論(0)  編輯  收藏 所屬分類: Flex
    不要試圖改變flash插件自帶的右鍵菜單,沒有辦法解決
    自帶的右鍵菜單壞處大大
    1.不能去掉默認(rèn)的幾項(xiàng)(關(guān)于)
    2.不能實(shí)現(xiàn)多層

    只能使用js屏蔽掉默認(rèn)右鍵事件,然后彈出自己的右鍵菜單來(lái)實(shí)現(xiàn)
    搜索了半天,找了個(gè)可行的方案,實(shí)現(xiàn)第一步:
    1.屏蔽默認(rèn)菜單,并響應(yīng)右鍵事件

    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
         * 'flexview_rightClick'
         
    */
        call: function() {
            document.getElementById(
    this.FlashObjectID).flexview_rightClick();
        }
    }


        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        
    <html>
        
    <head>
        
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        
    <title>TEST</title>
        
        
    <script type="text/javascript" src="swfobject.js"></script>
        
    <script type="text/javascript" src="rightClick.js"></script>

        
        
    </head>
        
    <body onload="RightClick.init();">
            
    <div id="flashcontent">Flash Player 10 required</div>
            
    <script type="text/javascript">
               var so 
    = new SWFObject("RightClickAS3.swf""customRightClick""560""420""9""#CCCCCC");
                so.addParam(
    "quality""high");
                so.addParam(
    "name""customRightClick");
                so.addParam(
    "id""customRightClick");
                so.addParam(
    "AllowScriptAccess""always");
                so.addParam(
    "wmode""opaque");
                so.addParam(
    "menu""false");
                so.addVariable(
    "variable1""value1");
                so.write(
    "flashcontent");
            
    </script>
        
    </body>
        
    </html>
       


    package com
    {
        
    import flash.display.*;
        
    import flash.external.ExternalInterface;
        
    public class RightClick extends Sprite
        {
            
    public function RightClick()
            {
                var methodName:String 
    = "flexview_rightClick";
                var method:Function 
    = onRightClick;
                ExternalInterface.addCallback(methodName, method);
            }
            
    private function onRightClick():void {
                var mx:
    int = stage.mouseX;
                var my:
    int = stage.mouseY;
                trace(mx 
    + ":" + my);
                
    if(my> 0 && my <stage.stageHeight && mx> 0 && mx <stage.stageWidth) {
                    
    // YOUR CODE HERE
                }
            }
        }
    }
    主站蜘蛛池模板: 国产精品二区三区免费播放心| 亚洲人色婷婷成人网站在线观看 | 亚洲精品自产拍在线观看动漫| 美女内射毛片在线看免费人动物| 亚洲砖码砖专无区2023| 亚洲午夜国产片在线观看| 亚洲精品视频免费在线观看| 黄色免费在线观看网址| 亚洲高清视频免费| 国产精品亚洲二区在线观看| 亚洲黄色免费电影| 男女交性无遮挡免费视频| 亚洲日韩国产精品无码av| 精品亚洲一区二区三区在线观看 | 亚洲精品中文字幕乱码三区| 毛片免费在线观看网址| a级毛片视频免费观看| 亚洲熟妇成人精品一区| 日本亚洲视频在线| 在线免费观看国产视频| 久久午夜羞羞影院免费观看| 理论片在线观看免费| 亚洲人成片在线观看| 亚洲AV无一区二区三区久久| 全亚洲最新黄色特级网站| 99精品全国免费观看视频 | 成年女人毛片免费视频| 少妇太爽了在线观看免费视频| 精品视频免费在线| 亚洲天堂免费在线| 久久精品蜜芽亚洲国产AV| 亚洲综合精品网站在线观看| 精品国产免费观看| 91黑丝国产线观看免费| 今天免费中文字幕视频| 特a级免费高清黄色片| 亚洲av无码一区二区三区人妖| 亚洲最新中文字幕| 亚洲永久永久永久永久永久精品| 亚洲爽爽一区二区三区| 免费一级国产生活片|