Vereis tengo este código, pero tiene el fallo que si se mantiene la tecla pulsada, el codigo se ejecuta una y otra vez.
Código :
public function Principal():void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, TeclaPulsada);
stage.addEventListener(KeyboardEvent.KEY_UP, TeclaSoltada);
}
private function TeclaPulsada(e:KeyboardEvent):void
{
switch(e.keyCode)
{
case Keyboard.UP:
stage.addEventListener(Event.ENTER_FRAME, MoverArriba);
break;
case Keyboard.DOWN:
stage.addEventListener(Event.ENTER_FRAME, MoverAbajo);
break;
case Keyboard.LEFT:
stage.addEventListener(Event.ENTER_FRAME, MoverIzquierda);
break;
case Keyboard.RIGHT:
stage.addEventListener(Event.ENTER_FRAME, MoverDerecha);
break;
}
}Para mi eso es un problema porque lo que necesito es que al pulsar una tecla, se añada el evento y se acabó. No quiero que siga ejecutando la funcion TeclaPulsada si deja pulsada la tecla, pero si pulta otra tecla quiero que se ejecute TeclaPulsada tambien una sola vez, aunque mantenga la tecla continuamente pulsada.
El evento ENTER_FRAME lo remuevo al soltar cada tecla.
Alguna idea de como podria hacer lo que digo??
Un saludo
