1
有当动作闪存上下文菜单(右键菜单)已经开通,其分派的事件:Actionscript 3 ContextMenu关闭事件?
ContextMenuEvent.MENU_SELECT
现在,有当菜单已关闭其分派的事件?
有当动作闪存上下文菜单(右键菜单)已经开通,其分派的事件:Actionscript 3 ContextMenu关闭事件?
ContextMenuEvent.MENU_SELECT
现在,有当菜单已关闭其分派的事件?
好问题。 这将使一个很好的功能请求,一个ContextMenuEvent.MENU_CLOSED事件:)
我想我有你一半的答案。这是我的想法:
var myContextMenu:ContextMenu = new ContextMenu();
var menuLabel:String = "Custom Item";
var rightClicking:Boolean;
addCustomMenuItems();
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseUpHandler);
var redRectangle = makeRedRectangle();
redRectangle.contextMenu = myContextMenu;
function makeRedRectangle():Sprite{
redRectangle = new Sprite();
redRectangle.graphics.beginFill(0x990000,.2);
redRectangle.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
redRectangle.mouseChildren = false;
addChild(redRectangle);
return redRectangle;
}
function addCustomMenuItems():void {
myContextMenu.hideBuiltInItems();
var item:ContextMenuItem = new ContextMenuItem(menuLabel);
myContextMenu.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
}
function menuSelectHandler(event:ContextMenuEvent):void {
trace("menuSelectHandler: " + event);
rightClicking = true;
}
function menuItemSelectHandler(event:ContextMenuEvent):void {
trace("menuItemSelectHandler: " + event);
}
function mouseUpHandler(event:MouseEvent):void{
if(rightClicking){
trace('ContextMenu Closed\nThank You! Come Again!');
rightClicking = false;
}
}
基本上我创建的一切上面的一个精灵,但已mouseChildren设置为false,所以剪辑怒吼咆哮,可以得到的点击次数。你可能想要让这个透明。我使用这个,所以当你点击它时,你会得到一个事件。当发生这种情况时,我将rightClicking设置为true,意思是,我知道按下了右键,我只是在等待其他事情发生。有两种选择:
对于选项1,如果用户选择了您的任何自定义项目,那很酷,如果没有,至少您知道会发生什么。 对于选项2,我设置了MOUSE_DOWN事件的侦听器,因此如果rightClicking已打开,并且鼠标向下,那么菜单关闭。
希望这会有所帮助!
我知道,它看起来像哈克老同学AS2,代码从文档的例子,改装,但它有一个想法:)