0

当我在键盘上的触摸“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)。当我双击时没有错误但什么都没有发生……知道为什么吗?

4

1 回答 1

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

于 2013-09-11T14:59:36.343 回答