|
网页FLASH动画禁止右键菜单的方法
来源:
互联网
日期:2009-8-10
|
|
|
|
|
我们针对各种网店的需求,提供具有专业针对性的智能网店。集易用性和强大功能为一体,支持静态HTML生成和搜索优化、个性化模版定制、强大的网店管理系统和各种专业网店功能...点此申请
|
|
|
|
|
|
智能建站已经成为企业网站建设的主要方式,建立个性化企业网站是企业品牌形象的体现;具有强大灵活的网站功能、HTML生成、搜索引擎优化,现有简体、繁体、英文、日文等多国语言可选用。赶快申请,立即拥有个性化企业网站... |
|
|
|
|
|
三语易站是国内受众最广泛的傻瓜式自助建站系统。只要会打字就可以建站,支持简繁英三语,简繁自动转换;具有单页、文章、图文、下载等网站内容管理功能,自定义栏目内容设置,管理系统简单易用,适合企业个人自助创建和管理网站...点此申请
|
|
|
|
|
在做一个实验时遇到一个禁止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 <stage.stageHeight && mx> 0 && mx <stage.stageWidth) { // 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)
精品网站程序下载(草根站长最爱)
QQ2013,QQ2012临时会话插件(全国首发)
711旅游网站管理系统V2013(无功能限制)
711幻灯片管理系统(全国首发) 各类网站程序下载
711企业网站管理系统V2013个人版(无功能限制)
711免费在线客服系统个人版 V2.0
电影小偷采集程序V2013免费下载 点此查看
更多的网页FLASH动画禁止右键菜单的方法请到论坛查看: http://BBS.TC711.COM
【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】
来源:
互联网
日期:2009-8-10
|
|
|
|
|