用户名:  密码:
兄弟在线   

标题:AS 一个禁止flash右键的方法

作者:佚名 来源:一聚教程 时间:2011-09-15

以下是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();  
    }  
}


以下是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 <stage.stageHeight && mx> 0 && mx <stage.stageWidth) {  
                // YOUR CODE HERE  
            }  
        }  
    }  
}


支持的浏览器有:

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
毕竟是国外的产品,似乎对某些国产浏览器支持不好,拥有最多用户的maxthon浏览器如果开启鼠标手势就不被支持。解决方法还在尝试中。

 



编辑:admin 总点击 [1313]   评论  0 查看评论
上一篇:As3 startDrag
下一篇:flash as 制作被风吹效果代码
【关闭窗口】
您可能感兴趣的文章
我要评论
          
评论标题:   可以输入250
 
验证数字: 3 + 6 =
兄弟友情提示
· 请自觉遵守国家有关法律、法规,尊重网上道德。
· 兄弟在线坚决抵制不良言行,违者文责自负。
· 如果文章有版权或其他问题等,请联系我们,我们会尽快处理。
· 文章注名来自网络的旨在传播共享信息,不做其它用途;注名原创的本站支持原创,但不代表同意其观点。
· 兄弟在线拥有管理用户与其文章和评论的一切权利,并有权在网站内转载或引用。
兄弟在线
兄弟热门文章
兄弟推荐文章
兄弟站内搜索

兄弟感兴趣的文章
兄弟最新影视