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,代碼從文檔的例子,改裝,但它有一個想法:)