电脑培训:Flex自定义右键菜单-1屏蔽默认菜单
作者:广州电脑培训发布时间:2020-09-02分类:电脑教程浏览:1197
不要试图改变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年粤港澳青年创新创业交流活动|||计算机专业维修学校
- 东莞信息:横沥横沥镇召开治理欠薪冬季专项行动工作会议|||计算机软件培训学校
- 东莞信息:樟木头樟木头镇召开2024年保障农民工工资支付暨治理欠薪冬季行动部署工作会议|||计算机培训学校招生
- 东莞信息:石排劳动争议调解业务培训班干货满满!|||电脑计算机编程培训学校
- 标签列表
-