新闻中心
网页FLASH动画禁止右键菜单的方法
以下是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
相关新闻
更多相关新闻>>- 20个非常实用的网页设计资源推荐
- 2009/11/11
- 好看的网页登录表单设计欣赏
- 2009/12/12
- Flash 与 Silverlight 终极大比拼
- 2009/5/14
- SEO中的十大关键词竞争度分析方法
- 2009/11/8
- 10种简单方法增加你的单项外链
- 2009/9/21
- Google搜索引擎如何评估网页的质量
- 2009/5/22
- 禁止个人注册CN域名 域名只给企业注册不妥
- 2009/12/24
- ASP.NET十个有效性能优化的方法
- 2009/4/4
- PIXLR:免费网页版PHOTOSHOP
- 2009/7/11
- 论策浅谈四种方法搞定网站推广
- 2009/5/15