transformar doble clic en Z a doble clic en el mouse

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é?

preguntado el 11 de septiembre de 13 a las 14:09

has probado MouseEvent.DOUBLE_CLICK? stageRef.addEventListener(MouseEvent.DOUBLE_CLICK, myFunction); -

sí, pero no funciona... (para Adobe AIR ANDOIRD) -

pero aparentemente MouseEvent.DOUBLE_CLICK no funciona bien y tenemos que configurar un temporizador... -

if(event.buttonDown) tampoco funciona... (error 1120) .Tal vez necesito importar algo como import flash.events.MouseEvent; o algo así.. -

1 Respuestas

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 or haz tu propia pregunta.