当我在键盘上的触摸"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
事件时,请检查计时器是否正在运行,如果是,则删除大量事件侦听器和对象。您永远不会停止计时器或重置计时器或删除计时器,我只是想知道这是否是故意的?