- 自定义右键菜单注册类:
项目中新增注册类 RightClickManager,代码如下:
package com.siloon.plugin.rightClick
{
import flash.display.DisplayObject;
import flash.display.InteractiveObject;
import flash.events.ContextMenuEvent;
import flash.events.MouseEvent;
import flash.external.ExternalInterface;
import mx.core.Application;
public class RightClickManager
{
static private var rightClickTarget:DisplayObject;
static public const RIGHT_CLICK:String = "rightClick";
static private const javascript:XML =
<script>
<![CDATA[
/**
*
* Copyright 2007
*
* Paulius Uza
* http://www.uza.lt
*
* Dan Florio
* http://www.polygeek.com
*
* Project website:
* http://code.google.com/p/custom-context-menu/
*
* --
* RightClick for Flash Player.
* Version 0.6.2
*
*/
function(flashObjectId)
{
var RightClick = {
/**
* Constructor
*/
init: function (flashObjectId) {
this.FlashObjectID = flashObjectId;
this.Cache = this.FlashObjectID;
if(window.addEventListener){
window.addEventListener("mousedown", this.onGeckoMouse(), true);
} else {
document.getElementById(this.FlashObjectID).parentNode.onmouseup = function() { document.getElementById(RightClick.FlashObjectID).parentNode.releaseCapture(); }
document.oncontextmenu = function(){ if(window.event.srcElement.id == RightClick.FlashObjectID) { return false; } else { RightClick.Cache = "nan"; }}
document.getElementById(this.FlashObjectID).parentNode.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.FlashObjectID).parentNode.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();
}
}
RightClick.init(flashObjectId);
}
]]>
</script>;
public function RightClickManager()
{
return;
}
static public function regist() : Boolean
{
if (ExternalInterface.available)
{
ExternalInterface.call(javascript, ExternalInterface.objectID);
ExternalInterface.addCallback("rightClick", dispatchRightClickEvent);
Application.application.addEventListener(MouseEvent.MOUSE_OVER,mouseOverHandler);
}// end if
return true;
}
static private function mouseOverHandler(event:MouseEvent) : void
{
//rightClickTarget = DisplayObject(event.target);
rightClickTarget = InteractiveObject(event.target);
return;
}
static private function dispatchRightClickEvent() : void
{
var event:MouseEvent;
if (rightClickTarget != null)
{
event = new MouseEvent(RIGHT_CLICK, true, false, rightClickTarget.mouseX, rightClickTarget.mouseY);
//event = new ContextMenuEvent(RIGHT_CLICK, true, false, rightClickTarget as InteractiveObject, rightClickTarget as InteractiveObject);
rightClickTarget.dispatchEvent(event);
}// end if
return;
}
}
}
-
打开自己的Flex工程下的html-template文件夹下的index.template.html文件(右击-Open With-Text Editor),在var params = {};语句的下面添加下面的语句:params.wmode = "opaque";//屏蔽系统右键菜单的关键
3. 在主程序文件中引入://初始化
protected function init():void
{
if (!rightClickRegisted)
{
maxNumText.text=rightClickRegisted.toString();
RightClickManager.regist();
rightClickRegisted = true;
}
this.addEventListener(RightClickManager.RIGHT_CLICK,rightClickHandler);
maxNumText.text+="init";
}
//创建菜单项
private function createMenuItems():Array
{
var menuItems:Array = new Array();
var menuItem:Object;
menuItem = new Object;
menuItem.label = '刷新'; //菜单项名称
//menuItem.itemIcon = this.menu_SX;//菜单项图标
menuItems.push(menuItem);
return menuItems;
}
//生成右键菜单
private function initMenu():void
{
menu = Menu.createMenu(this, createMenuItems(), false);
//menu.iconField="itemIcon";//右键菜单的图标
//menu.labelField="label"; //右键菜单的名称
menu.variableRowHeight = true;
menu.width=100;
menu.addEventListener(MenuEvent.ITEM_CLICK, menuItemSelected); //右键菜单的事件
var point:Point = new Point(mouseX,mouseY);
point = localToGlobal(point);
menu.show(point.x,point.y); //显示右键菜单
maxNumText.text="initMenu";
}
//删除右键菜单
private function removeMenu():void
{
if(menu!=null)
{
menu.hide();
menu.removeEventListener(MenuEvent.ITEM_CLICK,menuItemSelected);
menu=null;
}
maxNumText.text="removeMenu";
}
//菜单项点击事件
private function menuItemSelected(event:MenuEvent):void
{
var menuItem:Object = event.menu.selectedItem as Object;
//……
switch(menuItem.label)
{
case "刷新":
addLine();
break;
// ……
}
}
private function addLine():void
{
maxNumText.text="addLine";
}
//控件右击事件
private function rightClickHandler(event:MouseEvent):void
{
//tree_onRightClicked(event);
maxNumText.text="rightClickHandler0";
removeMenu();
initMenu();
maxNumText.text="rightClickHandler";
}
相关推荐
flex实现右键菜单
NULL 博文链接:https://mirabelle1211.iteye.com/blog/961255
flex RightClickManager 用法
1、到http://rightclickmanager.googlecode.com中下载RightClickManager类文件添入flex项目2、修改(项目名).template.html模版文件,在AC_FL_RunContent函数调用中添加"wmode", "opaque",参数3、并在注册事件之前执行RightClickManager.regist();4、注册事件addEventLi...
flex 自定义右键菜单 多级右键菜单
flex 自定义右键菜单 多级右键菜单flex 自定义右键菜单 多级右键菜单flex 自定义右键菜单 多级右键菜单
Flex下的右键菜单问题汇总
Flex下的右键菜单
FLEX 完全屏蔽系统默认右键菜单,实现自定义菜单
完全屏蔽flex自带的右键菜单,实现自定义右键菜单,附件有完整可运行的例子。 这个问题折腾了一天多,在网上搜了很多资料,几乎都是一样的,转来转去,且讲的不明不白。这里我提供了可运行的全部代码,让你轻松搞定头疼已久的问题。 具体原理我就不说了,网上说得太多,我也不很懂。下面说出关键步骤: 1. 在index-template.html文件中加入params.wmode = "opaque"; 2. 将下载来的RightClickManager类放如你的工程。 3. 在mxml文件中加入[Event(name="rightClick",type="flash.events.ContextMenuEvent")] [Event(name="rightClick",type="flash.events.ContextMenuEvent")]等。 如有问题请QQ我,54305792
基于GIS的生态安全网络格局构建(附练习数据下载)
基于GIS的生态安全网络格局构建(附练习数据下载)
flex右键菜单
例子1、import flash.ui.ContextMenu;import flash.ui.ContextMenuItem;import flash.events.ContextMenuEvent;// 为鼠标右键添加关闭当前浏览器窗口的菜单var contextMenu : ContextMenu = new ContextMenu();contextMenu.hideBuiltInIt
基于ROS与Gazebo的多机器人三角形编队仿真实践
本文详细介绍了基于ROS与Gazebo的多机器人三角形编队仿真实践,从环境搭建到编队控制的全过程。通过TurtleBot3机器人模型和TF坐标系系统,实现三个机器人的三角形编队控制,适用于机器人协同作业与编队算法研究。
flex自定义右键菜单
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applica
水文模型新手必看:用SWAT-CUP做参数率定,如何正确设置预热期、率定期和验证期?(附数据准备避坑指南)
本文详细介绍了使用SWAT-CUP进行水文模型参数率定的完整流程,重点解析了预热期、率定期和验证期的正确设置方法,并提供了数据准备的避坑指南。通过实操步骤和常见问题解决方案,帮助新手快速掌握SWAT-CUP参数率定的核心技巧,提升水文模型模拟精度。
利用Ghidra与SVD插件实现STM32固件深度逆向分析
本文详细介绍了如何利用Ghidra逆向工程框架结合SVD插件,实现对STM32固件(.bin文件)的深度逆向分析。通过加载描述芯片外设寄存器的SVD文件,Ghidra能将晦涩的硬件地址操作转换为可读的寄存器符号,极大提升了对嵌入式固件中通信协议、安全校验等关键逻辑的分析效率。文章涵盖了从Java环境搭建、工具配置到实战逆向解析的完整流程。
Flex屏蔽并自定义鼠标右键菜单(转载)
http://www.cnblogs.com/wuhenke/archive/2010/01/29/1659353.html 通过ContextMenu hideBuiltInItems,如API所说,无法去除剪贴板选项。 Google Code上有一个RightClickManager的项目。通过JavaScript与ActionScript的结合,屏蔽了右键,并调用actions...
使用项目管理画布启动项目
许多人对商业模式画布并不陌生,它是亚历山大·奥斯特瓦德(Alexander Osterwalder)、伊夫·皮尼厄(Yves Pigneur)在《商业模式新生代》(Business Model Generation)中提出的一种用来描述商业模式、可视化商业模式、评估商业模式以及改变商业模式的通用语言。 在我们做敏捷软件项目inception(项目启动规划)的时候经常会用到商业画布,此时它的作用是帮助我们快速了解客户的业务、产品和市场,帮助客户梳理自己的资源、优势和盈利模式,总的来说,商业画布是一种简单实用的
Flex4中添加自定义右键菜单
下面这个例子给Flex的右键添加一个自定义的菜单,并且在点击菜单内容时,执行事件 1 var copyrightMenuItem:ContextMenuItem = new ContextMenuItem("菜单内容", true, true); 1 2 3 4
GPU 运维实战:H100/H800/B300 换卡与压测
(烧多久、看什么、什么算合格)。文末还给了一个能直接跑的验收判定脚本,三个真实场景的裁决输出都在。
Python从0到100(二):Python语言介绍及第一个Pyhon程序
Python从0到100(二):Python语言介绍及第一个Pyhon程序。与C和Java比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。
Flex4自定义右键菜单
Flex4自定义右键菜单 (2011-01-26 12:03:34) 转载▼ 标签: flex 自定义 右键 菜单 tree 图标 分类: Flex 注:本文参考了以下文章,经修改完成 http://leopard0825.iteye.com/blog/
使用 IMDb API 获取电影评分和评论的 Python 爬虫
电影是人们娱乐生活中的重要组成部分,随着电影产业的快速发展,观众对电影的评价也越来越多样化。IMDb(互联网电影数据库)作为全球最大的电影评分和评论平台之一,收录了成千上万部电影、电视节目及其相关数据。它提供了一个强大的 API 接口,允许开发者访问电影的评分、评论、演员信息等数据。本文将带你一步一步实现一个 Python 爬虫,使用 IMDb API 获取电影的评分和评论。我们将通过这个爬虫来分析一些热门电影的观众反馈,并可视化分析结果。
MP3302DJ驱动MIPI屏幕背光电路设计:原理、计算与避坑指南
在嵌入式显示系统中,MIPI DSI接口负责高速图像数据传输,而屏幕背光LED的供电与恒流控制则需独立的功率电路。升压型LED驱动器通过电感储能与开关切换,将低压输入提升至灯串所需电压,并借助反馈采样维持稳定电流。PWM调光技术可灵活调节亮度,广泛应用于平板、工控屏、车载显示等场景。本文围绕MP3302DJ这一经典升压LED驱动芯片,从升压拓扑原理、关键参数计算、PCB布局布线到常见调试问题,系统讲解MIPI屏幕背光电路的完整设计链路,并针对亮度不均、啸叫、EMC干扰等工程痛点给出实用避坑经验,为中小尺寸显
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
flex4 自定义右键菜单
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="init()">
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
Flex 屏蔽右键菜单,并自定义菜单
Flex 屏蔽右键菜单,并自定义菜单 2010-05-05 11:25:47 | 分类: Flex | 字号 订阅 ...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
227



被折叠的 条评论
为什么被折叠?



