亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Flex > 正文

Flex自定義右鍵菜單具體實現

2024-09-08 18:16:52
字體:
來源:轉載
供稿:網友
1.自定義右鍵菜單注冊類:
項目中新增注冊類 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
*
*
* Dan Florio
*
*
* Project website:
*
*
* --
* 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;
}
}
}


2. 打開自己的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";
}


4.完整代碼如下:
示例代碼文件

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一福利网站| 国产在线a不卡| 欧美美最猛性xxxxxx| 国产精品久久久久91| 欧美老女人在线视频| 成人免费观看a| 欧美午夜影院在线视频| 国产成人精品av在线| 国产91热爆ts人妖在线| 成人精品久久一区二区三区| 欧美一级视频免费在线观看| 精品久久久久久久久久久| 国产精品偷伦视频免费观看国产| 欧美孕妇性xx| 国产精品情侣自拍| 久久精品国产亚洲精品| 九九热r在线视频精品| 欧美又大又硬又粗bbbbb| 色综合久久88| 国产精品白嫩初高中害羞小美女| 国产mv久久久| 欧美色播在线播放| 欧美激情视频网站| 在线观看久久久久久| 久久久久久久爱| 久久久久久久久久久久av| 中文国产成人精品| 91亚洲精品在线| 久久精品视频在线播放| 91精品国产综合久久香蕉最新版| 国产成人精品久久二区二区91| 欧美成人在线免费视频| 国产精品xxx视频| 国产成人精品视| 伊人亚洲福利一区二区三区| 日韩有码在线播放| 国产精品极品尤物在线观看| 亚洲欧洲一区二区三区在线观看| 日本高清不卡的在线| 奇米影视亚洲狠狠色| 国产成人在线视频| 欧美日韩免费观看中文| 国产精品wwww| 亚洲国产精品人久久电影| 国语自产精品视频在免费| 91午夜理伦私人影院| 国产69精品久久久| 2020欧美日韩在线视频| 伊人久久久久久久久久久久久| 日韩精品视频中文在线观看| 亚洲国产精品人人爽夜夜爽| 日韩精品欧美激情| 精品视频在线播放免| 在线播放日韩专区| 亚洲黄色在线观看| 国产一区二区视频在线观看| 久久久精品在线观看| 日韩成人xxxx| 久久九九有精品国产23| 91黑丝在线观看| 亚洲国产精品久久久久| 日韩欧美在线视频免费观看| 日韩av免费在线| 久久香蕉国产线看观看网| 久久久精品国产网站| 国产精品www| 欧美日韩国产精品| 国产一区视频在线| 精品中文字幕在线| 色伦专区97中文字幕| 国产成人高清激情视频在线观看| 国产欧美一区二区三区四区| 日本一区二区在线播放| 久热在线中文字幕色999舞| 欧美在线免费观看| 一区二区三区精品99久久| 国产剧情日韩欧美| 亚洲图片制服诱惑| 日韩女在线观看| 精品国产精品自拍| 久久99亚洲精品| 日韩精品视频免费专区在线播放| 亚洲曰本av电影| 日本免费一区二区三区视频观看| 91亚洲国产成人久久精品网站| 日韩一二三在线视频播| 国产精品高清在线观看| 亚洲精品欧美一区二区三区| 美女撒尿一区二区三区| 久久视频这里只有精品| 91日韩在线视频| 国产日韩欧美在线播放| 久久精品国产69国产精品亚洲| 亚洲精品美女久久| 91精品国产91久久| 欧美国产日韩一区二区| 国产精品va在线| 欧美福利视频在线| 亚洲色图美腿丝袜| 欧美成人精品一区| 欧美贵妇videos办公室| 欧美www在线| 亚洲欧美中文日韩在线| 一区二区三区国产在线观看| 亚洲国产99精品国自产| 亚洲成人黄色在线| 国产精品久久中文| 国产亚洲欧洲黄色| 亚洲国产精品中文| 久久精品99国产精品酒店日本| 久久久国产一区二区| 日韩成人网免费视频| 97超级碰碰碰| 亚洲毛片在线观看.| 亚洲理论在线a中文字幕| 欧美日韩国产成人| 中文欧美在线视频| 亚洲国产一区二区三区在线观看| 欧美日韩国产中文精品字幕自在自线| 色婷婷av一区二区三区在线观看| 欧美激情亚洲综合一区| 97视频在线观看免费高清完整版在线观看| 国产性猛交xxxx免费看久久| 欧美日韩国产综合新一区| 日韩免费av片在线观看| 国产成人亚洲综合91| 日韩在线观看免费全集电视剧网站| 亚洲国产欧美一区二区三区久久| 亚洲第一区中文字幕| 91sa在线看| 国产精品99蜜臀久久不卡二区| 日韩欧美福利视频| 亚洲日本中文字幕免费在线不卡| 亚洲精品mp4| 在线看国产精品| 成人激情视频小说免费下载| 欧美一级成年大片在线观看| 国产日韩中文在线| 日韩电视剧免费观看网站| 国产盗摄xxxx视频xxx69| 久久影院模特热| 国产精品一区二区三| 成人亚洲综合色就1024| 国产专区欧美专区| 日韩精品中文字幕在线播放| 国产视频一区在线| 国产精品久久久久久久久影视| 一区二区亚洲精品国产| 国产精品视频永久免费播放| 中文字幕精品www乱入免费视频| 国产精品久久久久久久app| 成人免费视频xnxx.com| 色哟哟亚洲精品一区二区| 九九精品在线观看| 日韩在线视频免费观看高清中文| 欧美精品久久久久久久| 国产成人在线一区二区| 成人精品视频99在线观看免费| 亚洲激情视频网| 日韩中文字幕国产| 欧美壮男野外gaytube| 一区二区欧美久久| 欧美日本黄视频| 久久偷看各类女兵18女厕嘘嘘|