Foros del Web » Creando para Internet » Flash y Actionscript »

Ayuda con if/else y pulsar tecla

Estas en el tema de Ayuda con if/else y pulsar tecla en el foro de Flash y Actionscript en Foros del Web. Wenas, foreros!! Soy nuevo en la comunidad y por lo que me ha parecido leer por los temas parece ser un foro muy interesante (que ...
  #1 (permalink)  
Antiguo 09/08/2005, 05:51
Avatar de massabe  
Fecha de Ingreso: agosto-2005
Ubicación: Barcelona (España)
Mensajes: 57
Antigüedad: 12 años, 4 meses
Puntos: 1
Ayuda con if/else y pulsar tecla

Wenas, foreros!! Soy nuevo en la comunidad y por lo que me ha parecido leer por los temas parece ser un foro muy interesante (que poco a poco intentaré ir leyendo )

Bueno, la cuestión es que estoy familiarizándome con el Flash y poco a poco voy haciendo animaciones y juegos que cada vez me van saliendo mejor. Pero en una parte de un juego que estoy haciendo tengo una duda :

Me gustaría hacer que, en un momento de la animación, tengas que apretar una tecla determinada, y que, si apretas esa tecla vayas a un fotograma, pero si apretas cualquier otra tecla, vayas a otro fotograma.

Más o menos sé cómo se debe hacer. Se debe usar el if y el else. El problema es que no sé como decirle lo de la tecla, si es que tengo que usar el KeyPress o qué.

Lo que he hecho es esto, pero no me sale bien:

on (keyPress "1") {
if (keyPress==1) {
gotoAndPlay(650);
} else {
gotoAndPlay(643);
}

}


Creo que el error está en que primero obligo a que el usuario aprete la tecla 1 para seguir avanzando y que si apreta otra no pase nada. Y segundo, creo que el keypress que está dentro del if hace la función de variable normal y corriente y no tiene nada que ver con la función keypress.

Bueno, resumiendo: Me gustaría saber qué debo hacer para que si apreto una tecla vaya a un fotograma, y si apreto cualquier otra, me vaya a otro.
  #2 (permalink)  
Antiguo 09/08/2005, 06:11
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 13 años
Puntos: 2
Hola massabe!

Puedes poner este código en el primer fotograma de tu peli:

myListener = new Object();
myListener.onKeyDown = function () {
if (Key.getAscii()==49)
trace ("Has pulsado el 1");
else
trace("Has pulsado otra tecla")
}
Key.addListener(myListener);

Yo he hecho la prueba para la tecla "1", que tiene es ascii 49, pero es cuestión de poner el ascii de la tecla que quieres, y poner en gotoAndPlay en lugar del trace

Espero que te sirva
  #3 (permalink)  
Antiguo 09/08/2005, 06:23
Avatar de massabe  
Fecha de Ingreso: agosto-2005
Ubicación: Barcelona (España)
Mensajes: 57
Antigüedad: 12 años, 4 meses
Puntos: 1
Uooooh ... ¡¡¡muchas gracias, Morgui!!!

Veo que la clave está en el Key.getAscii()

Pues muchísimas gracias Voy a probarlo ahora mismo a ver qué tal sale . Lo del listener no tengo ni idea de lo que es, pero bueno, lo pondré también, que tiene pinta de ser imprescindible

Ah, y cuando acabe mi mini-juego (es una especie de aventura gráfica donde hay que ir clicando a objetos y personas e ir entrando por puertas) ya pondré un enlace por aqui (si puedo, claro que si no este emoticono me dará en los dientes -> )
  #4 (permalink)  
Antiguo 09/08/2005, 06:31
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 13 años
Puntos: 2
Me alegro, para eso estamos .

Lo del listener sí que es necesario, la verdad es que yo tampoco tengo mucha idea (nunca lo he usado) pero consultando onKeyDown en la ayuda de flash me ha salido todo eso...Echale un vistazo para tenerlo más claro.

Suerte con tu juego y ya lo veremos cuando lo tengas listo
  #5 (permalink)  
Antiguo 09/08/2005, 07:04
Avatar de massabe  
Fecha de Ingreso: agosto-2005
Ubicación: Barcelona (España)
Mensajes: 57
Antigüedad: 12 años, 4 meses
Puntos: 1
¡Oh, no! Parecía demasiado bonito para ser verdad ...

El método me funciona a medias ... he puesto lo que me has puesto cambiando lo del "trace" por lo de "gotoAndPlay(elnumeroquesea); ". Y funciona si apreto la tecla 1 hace lo del if y si apreto cualquier otra hace lo del else

El problema es que la condición se expande a cualquier fotograma en que esté. Es decir, quiero que cuando esté en el fotograma 200 si apreto la tecla 1 vaya al fotograma 220 y si apreto otra tecla vaya al 230. Hasta ahí todo funciona bien. El problema es que cuando lee esa función, esté en el fotograma que esté, cuando aprete la tecla 1 siempre me irá al fotograma 220. Vamos, que igual más adelante va al fotograma 400 o 500 o 420 y si apreto la tecla 1 se me va al fotograma 220.

En resumen: igual hay que descubrir alguna manera para decirle que una vez haya apretado la tecla 1 y alla ido al fotograma 220, esa condición de que al apretar la tecla 1 vaya al fotograma 220 finalice para que no se aplique esa condición en cualquier otro fotograma.

Vamos, igual que se le puede decir a una variable x= 0 y cuando no convenga decirle x = 1 , pues buscar un método para que después de decirle "cuando apretes la tecla 1 ves al fotograma 220" poderle decir "oiga, señor flash, que ahora cuando aprete la tecla 1 ya no quiero que vayas al fotograma 220, vale?" XDXDXD

A ver si acabamos entre todos descubriendo el misterio del enigma

Y muchas gracias por lo de antes He dado un paso de gigante en todo este embrollo
  #6 (permalink)  
Antiguo 09/08/2005, 07:23
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 13 años
Puntos: 2
Buf, que lio me he hecho. A ver si me he enterado, quieres que una vez que se pulse una tecla (bien sea el 1 o cualquier otra) deje de funcionar el código??? O depende del fotograma donde estés??

Si es lo primero puedes añadirle la línea en rojo:

myListener = new Object();
myListener.onKeyDown = function () {
if (Key.getAscii()==49){
trace ("Has pulsado el 1");
}else{
trace("Has pulsado otra tecla");
}
delete this.onKeyDown;
}
Key.addListener(myListener);

Así una vez se ejecute el evento onKeyDown ya lo se ejecutará más. Aunque dudo que sea lo que quieres porque ya no se puede detectar otra tecla...

Creo que no te he entendido muy bien, ya me dirás. Pero tranquilo que aquí hay mucha gente que sabe mucho (que conste que no me incluyo) y seguro que te ayudan
  #7 (permalink)  
Antiguo 09/08/2005, 07:39
Avatar de massabe  
Fecha de Ingreso: agosto-2005
Ubicación: Barcelona (España)
Mensajes: 57
Antigüedad: 12 años, 4 meses
Puntos: 1
Wooooow!!! Yeah-yeah! Sí!!! Era eso!!! Ahora funciona a la perfección !!!

Oh, qué bien! Ahora puedo seguir haciendo el juego Me quedé encallado con eso pero ahora será coser y cantar

Muchísimas gracias, Morgi !!! En cuanto termine el juego pondré un link por aqui para que lo veáis
  #8 (permalink)  
Antiguo 10/08/2005, 01:39
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 13 años
Puntos: 2


Estaremos espereando tu juego! Que ya me ha entrado curiosidad jejeje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:25.