电脑培训:Flex自定义右键菜单-1屏蔽默认菜单
作者:广州电脑培训发布时间:2020-09-02分类:电脑教程浏览:964
不要试图改变flash插件自带的右键菜单,没有办法解决
自带的右键菜单坏处大大
1.不能去掉默认的几项(关于)
2.不能实现多层
只能使用js屏蔽掉默认右键事件,然后弹出自己的右键菜单来实现
搜索了半天,找了个可行的方案,实现第一步:
1.屏蔽默认菜单,并响应右键事件
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();
}
}
Flash Player 10 required
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 0 && mx
// YOUR CODE HERE
}
}
}
}
――广州电脑培训学校
- 上一篇:电脑培训:AMQP与QPID简介
- 下一篇:电脑培训学校:ie9如何设置?
- 电脑教程排行
- 最近发表
-
- 东莞信息:莞城街道“南粤家政”基层服务示范站和北隅社区“南粤家政”基层服务站系列活动|||计算机培训学校招生
- 东莞信息:(沙田)2024年沙田镇春风行动暨“南粤春暖”行动系列招聘会圆满举办|||大学生计算机培训学校
- 东莞信息:(横沥)横沥镇大力宣传推广使用“就莞用”码|||中专学计算机平面设计女生可以学计算机网络技术好吗
- 东莞信息:2023年东莞市国民经济和社会发展统计公报(人民生活和社会保障部分)|||电脑计算机编程培训学校
- 东莞信息:中华人民共和国档案法实施条例|||广州计算机编程培训
- 东莞信息:(横沥)横沥镇开展民营企业服务月招聘活动|||计算机培训学校招生
- 东莞信息:(塘厦)公共服务进校园,塘厦人社分局在行动|||广州计算机软件培训
- 东莞信息:(石龙)举办石龙镇“就莞用”欠薪反映平台推广宣传活动|||计算机专业维修学校
- 东莞信息:(石龙)石龙人社分局举办职业指导下基层政策宣讲会|||计算机网络培训学校
- 东莞信息:2024年东莞市博士后第一期考察交流活动圆满结束|||广州市北大青鸟计算机职业培训学校
- 标签列表
-