转换双击Z双击鼠标

时间:2013-09-11 13:07:25

标签: actionscript-3

当我在键盘上触摸“z”(键码90)时单击2次,我的项目将被删除。

timer=new Timer(500, 1);
stageRef.addEventListener(KeyboardEvent.KEY_UP, removeDraggedItem);

private function removeDraggedItem(e:KeyboardEvent){
             if(timer.running==true)
            {
                if(e.keyCode==90)
                {
            stageRef.removeEventListener(MouseEvent.MOUSE_MOVE, dragItem);
            stageRef.removeEventListener(Event.ENTER_FRAME, itemHitTest);
            draggedItem.removeEventListener(MouseEvent.MOUSE_DOWN, itemClick);

            stageRef.removeChild(draggedItem);
            toolbar.useText.text = "";

            if (stageRef.contains(this))
                stageRef.removeChild(this);

            Mouse.show();
            Engine.playerControl = true;
                }
            }

            else if(e.keyCode==90)
            {
                timer.start();
            }
        }

我想改变它,当我们用鼠标点击2次时,项目被移除但我无法弄清楚如何做到这一点......如果mouseDown = true?它似乎没有工作......

编辑:

好的我已经尝试通过(e.buttonDown)更改(e.keyCode == 90)。当我双击时,没有错误,但没有发生任何想法?

1 个答案:

答案 0 :(得分:0)

您的代码只是在监听KEY_UP事件:stageRef.addEventListener(KeyboardEvent.KEY_UP, removeDraggedItem);。您还应添加KEY_DOWN事件,然后将KEY_DOWN事件与KEY_UP事件结合使用,以检查是否发生了双击。添加KEY_DOWN事件的代码为stageRef.addEventListener(KeyboardEvent.KEY_DOWN, functionName);

另一方面,如果您尝试使用MouseEvent.DOUBLE_CLICK,则必须为要双击的对象启用双击。哦,绝对包括flash.events.MouseEvent

object.doubleClickEnabled = true;
object.addEventListener(MouseEvent.DOUBLE_CLICK, functionName);

另外我注意到在你的removeDraggedItem函数中,如果keycode等于90,你就会启动一个计时器。然后在下一次抛出KEY_UP事件时,检查计时器是否正在运行,如果是,你将删除很多事件监听器和对象。你永远不会停止计时器或重置计时器或删除计时器,我只是想知道这是否是故意的?