转换双击 Z 以双击鼠标



当我在键盘上的触摸"z"(键码 90)上单击两次时,我的项目被删除了。

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次时,该项目被删除,但我不知道该怎么做......如果鼠标向下 = 真?它似乎不起作用...

编辑:

好的,我试图将(e.keyCode==90)更改为(e.buttonDown)。没有错误,但是当我双击时什么也没发生...知道为什么吗?

您的代码只侦听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函数中,如果键码等于 90,您将启动一个计时器。然后,下次抛出KEY_UP事件时,请检查计时器是否正在运行,如果是,则删除大量事件侦听器和对象。您永远不会停止计时器或重置计时器或删除计时器,我只是想知道这是否是故意的?

最新更新