Comunidad de diseño web y desarrollo en internet online

Las acciones con las teclas no siempre funcionan

Citar            
MensajeEscrito el 29 Jul 2012 10:47 pm
Hola a todos, estoy programando un juego en flash, y se me ocurrió la idea de que el usuario pueda modificar la configuración (sonido, calidad, pausa...) pulsando simplemente una tecla, en cualquier momento y sin tener que acceder a un menú. Basicamente el codigo de momento es este, por si quereis echarle una ojeada:

Código ActionScript :

stage.addEventListener(KeyboardEvent.KEY_UP, configuracion);

function configuracion(e:KeyboardEvent):void
{
 
if (e.keyCode == Keyboard.LEFT)
{if(calidad==1)
{stage.quality="high"
calidad=3}
else if(calidad==2)
{stage.quality="low"
calidad=1}
else if(calidad==3)
{stage.quality="medium"
calidad=2}}

if (e.keyCode == Keyboard.DOWN)
 {if(sonido==1)
{SoundMixer.soundTransform = new SoundTransform(0);
sonido=2}
else if(sonido==2)
{SoundMixer.soundTransform = new SoundTransform(1);
sonido=1}}

if (e.keyCode == Keyboard.RIGHT)
 {if(pausa==1)
{pausar_pantalla.gotoAndStop(2);
stage.frameRate = 0;
pausa=2}
else if(pausa==2)
{pausar_pantalla.gotoAndStop(1);
   stage.frameRate = 30;
pausa=1}}

}


El problema esta en que hay algunos momentos en los que deja de funcionar, y hay que hacer clic en la pantalla para que vuelva a funcionar. Creo que el problema está en el gotoAndStop. En el menú principal las telcas van de maravilla, hasta que clico por ejemplo el botón de ir al nivel 2 (gotoAndPlay(20);), y ahí las teclas dejan de funcionar hasta que clico en la pantalla.

¿Alguien sabe porque pasa y como solucionarlo?

Por el_arcano

33 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jul 2012 12:47 pm
Al quitar elementos del escenario, aún cuando no forman mas parte del DiusplayList los elementos se "quedan" con el foco y nunca mas llega (bubble) hasta el escenario. Esto ocurre con los juegos en los que dejas de poder controlar al personaje y en casos como el que cuentas. Sospecho de este escenario:

- En frame 10 hay un boton que al serclickado te lleva al frame 20
- En el frame 20 ya no existe ese boton

Esto no debería pasar ya que el elemento no existe ... pero pasa. La solucion es devolverle el foco al escenario en el frame 20 (o si es un elemento que haces desaparecer via removeChild, después de quitarlo)

Código ActionScript :

stage.focus=stage;


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Jul 2012 02:20 pm
Ok, muchas gracias. Problema solucionado.

Por el_arcano

33 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.