电脑培训:Flex自定义右键菜单-1屏蔽默认菜单
作者:广州电脑培训发布时间:2020-09-02分类:电脑教程浏览:967
不要试图改变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年茂名市技工教育招生院校名单|||计算机职业技能培训班
- 江门信息:我市两名金牌选手将代表广东省出战第二届全国乡村振兴职业技能大赛养老护理项目|||中专学计算机平面设计女生可以学计算机网络技术好吗
- 惠州信息:“惠州市就业驿站巡礼”之博罗石湾站|||广州市北大青鸟计算机职业培训学校
- 惠州信息:惠州市技工教育联盟成立大会暨第一届理事会全体会议成功召开|||计算机培训机构
- 河源信息:河源市和平县举办培训班进一步推进保障农民工工资支付制度全面贯彻落实|||计算机培训学校招生
- 江门信息:江门市举办劳动保障监察业务培训班,全面提升执法能力|||计算机网络培训学校
- 东莞信息:在莞被拖欠工资了?可到这个平台反映|||电脑计算机编程培训学校
- 肇庆信息:广东省2024年二级造价工程师职业资格考试报考通知|||北大青鸟计算机培训中心
- 东莞信息:广东省2024年高校毕业生“三支一扶”招募工作启动!东莞计划招募100人|||电脑计算机编程培训学校
- 中山信息:广东省2024年二级造价工程师职业资格考试报考须知|||北大青鸟计算机培训中心
- 标签列表
-