transformar doble clic en Z a doble clic en el mouse
Frecuentes
Visto 90 veces
0
Cuando hago clic 2 veces en el toque "z" (código de tecla 90) en mi teclado, mi elemento se elimina.
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();
}
}
Me gustaría cambiarlo y cuando hacemos clic 2 veces con el mouse, el elemento se elimina, pero no sé cómo hacerlo... if mouseDown = true ? no parece funcionar...
EDIT:
Ok, he intentado cambiar (e.keyCode==90) por (e.buttonDown). No hay errores, pero no pasa nada cuando hago doble clic... ¿alguna idea de por qué?
1 Respuestas
0
Su código solo está escuchando un KEY_UP
evento: stageRef.addEventListener(KeyboardEvent.KEY_UP, removeDraggedItem);
. Deberías agregar un KEY_DOWN
evento también y luego use el KEY_DOWN
evento en conjunto con el KEY_UP
evento para verificar un doble clic. El código para agregar un KEY_DOWN
el evento es stageRef.addEventListener(KeyboardEvent.KEY_DOWN, functionName);
.
En otra nota si estás tratando de usar MouseEvent.DOUBLE_CLICK
debe habilitar el doble clic para el objeto en el que desea hacer doble clic. Ah, y definitivamente incluir flash.events.MouseEvent
object.doubleClickEnabled = true;
object.addEventListener(MouseEvent.DOUBLE_CLICK, functionName);
También noté en tu removeDraggedItem
función, inicia un temporizador si el código clave es igual a 90. Luego, la próxima vez que KEY_UP
se lanza un evento, verifica si el temporizador se está ejecutando y, de ser así, elimina muchos objetos y detectores de eventos. Nunca detienes el temporizador, reinicias el temporizador o quitas el temporizador, solo me preguntaba si eso fue intencional.
Respondido el 11 de Septiembre de 13 a las 15:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas actionscript-3 or haz tu propia pregunta.
has probado
MouseEvent.DOUBLE_CLICK
?stageRef.addEventListener(MouseEvent.DOUBLE_CLICK, myFunction);
- null.point3rsí, pero no funciona... (para Adobe AIR ANDOIRD) - user2421975
pero aparentemente MouseEvent.DOUBLE_CLICK no funciona bien y tenemos que configurar un temporizador... - user2421975
if(event.buttonDown) tampoco funciona... (error 1120) .Tal vez necesito importar algo como import flash.events.MouseEvent; o algo así.. - user2421975