Comunidad de diseño web y desarrollo en internet online

Problemas con navegacón y contraseña en flash

Citar            
MensajeEscrito el 20 May 2007 11:17 pm
Hola a todos. Llevo un tiempo familiarizándome con el entorno de flash y ahora estoy empezando a aprender a usar AS. A ver si me podéis echar una mano.

Estoy creando una especie de casa en la que vayas viendo las distintas habitaciones. Quiero que tengas que introducir una contraseña para poder "entrar" en algunas de ellas. Para no liarme con capas y fotogramas, he creado un botón que te lleva a una escena 2, en la que debes introducir las contraseñas.

Entonces:
-Estás en escena 1, fotograma 1 ("habitacion1"). Hay un botón "contraseñas", otro "puerta1" y otro "puerta2"
-Click en el botón "contraseñas".
-Vas a escena 2, fotograma 1. Aquí tienes un cuadro de introducción de texto (Var: textocontra), un botón "enviar" y un botón "volver".

Hasta aquí todo bien. Me gustaría que:
-Introduzcas en el cuadro el texto "llave1" y luego hagas click en el botón "enviar". A partir de entonces, al hacer click en el botón "puerta1" pases a escena 1, fotograma 2 ("habitacion2").

Pensé que quizá con un "if" podría hacerlo, pero no lo consigo. No sé si el problema está en que debería especificar más una rutas, en que no debería haberlo hecho por escenas, o en si simplemente el código que escribí está mal. He probado con esto (y con algunas variantes):

enviar.onRelease = function() {
if (textocontra.text == "llave1") {
habitacion1.puerta1.onRelease = function() {
gotoAndStop("habitacion2");
};
}
}

He mirado unos cuantos tutoriales sobre el uso de "if", rutas, escenas y tal, pero no consigo encontrar algo que me ayude. A ver si me podéis echar una mano.

El otro problema que tengo es sobre la creación del botón "volver". De momento, he hecho que te devuelva a escena 1, fotograma 1, pero lo que me gustaría es que te llevase al último fotograma en el que estuviste. Simplemente he llamado a ese fotograma 1 "habitacion1" y he puesto:

volver.onRelease = function(){
gotoAndStop("habitacion1");
}

De momento me vale, pero no es un auténtico botón de "volver". Querría que "habitacion1" fuese cualquier fotograma de la escena 1 desde el que hayas accedido a el fotograma de las contraseñas (que se encuentra en la escena 2). Con un "prevFrame" no me sirve.

No sé si me explico. Espero que me hayáis entendido y me podáis ayudar. Está claro que tengo aún muy poca idea de ActionScript, pero espero ir aprendiendo poco a poco haciendo cosillas como esta.

Gracias por adelantado.

Por NoEspace

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 May 2007 05:48 pm
De verdad nadie me puede dar alguna pista?

Por NoEspace

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 May 2007 04:35 pm
prueba con esto:

Código :

enviar.onRelease = function() {
   if (textocontra.text == "llave1") {
      _root.gotoAndStop("habitacion2");
   }
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 23 May 2007 07:07 pm
Lo primero, gracias por responderme, Gabyfune.

Efectivamente, eso funciona, pero no hace exactamente lo que yo quiero. Mira, pongo la diferencia aquí, a ver si se ve más claro.

Esto es lo que tú sugieres:

Código :

Tras hacer click en "enviar" {
   si (en el "textocontra" has escrito "llave1") {
      vas a "habitacion2"}
       }


Esto es lo que quiero hacer yo:

Código :

Tras hacer click en "enviar" {
   si (en el "textocontra" has escrito "llave1") {                       //a partir de entonces y siempre...
       tras click en "puerta1" {
          vas a "habitacion2"}
       }
}


Pero muchas gracias de todas formas :D. Ya pensaba que nadie me iba a responder.

Por NoEspace

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 May 2007 01:54 pm
Lo que quieres es que
mientras no captures la contraseña correcta, las puertas no te permitan el acceso, (ahhhhh).

Entonces: cuando capturas la contraseña correctamente te debe regresar a la escena1 ¿no?

Si es asi entonces te sugiero lo siguiente:

1) Crea un MovieClip llamado por ejemplo CapturaContra, que contendrá lo que tiene actualmente tu escena2
(un cuadro de introducción de texto (Var: textocontra), un botón "enviar" y un botón "volver") y elimina la escena2

2) Crea otro Movieclip llamado "FondoContra", que contendrá un rectángulo sin borde del tamaño igual a tu escenario
y del mismo color que el fondo de tu escenario.

3) Coloca el clip FondoContra en una nueva capa dentro de tu clip llamado CapturaContra
(con un nombre de instancia igual a "FondoContra"),
(esta capa debe estar por debajo de las demás capas).

4) En el primer fotograma de tu clip llamado CapturaContra colocas el siguente codigo
(puedes agregar una capa para el codigo):

Código :

FondoContra.useHandCursor = false;
FondoContra.onPress = function () { }; // no hace nada, unicamente sirve para anular los botones que esten por debajo de este clip
enviar.onRelease = function() {
   if (textocontra.text == "llave1") {
      _root.Puerta1.enabled = true; // esto habilita el boton Puerta1
      _root.CapturaContra._visible = false; // solo si deseas que desaparezca la ventana.
   } else {
      // aqui pones el codigo que deseas que haga si la validacion es erronea
      // ¿quieres que te envie un mensaje de error?
   }
}
volver.onRelease = function () {
   _root.CapturaContra._visible = false; 
}

coloca el clip CapturaContra en una nueva capa de tu escena1 (sobre todo lo demás) y ponle el nombre de instancia "CapaContra".
ahora en el primer fotograma de tu linea de tiempo principal de la escena1 colocas el siguente codigo:

Código :

Puerta1.onRelease = function () {
   gotoAndStop("habitacion2");
}
Puerta1.enabled = false; // esto deshabilita el boton Puerta1.
CapturaContra._visible = false; // esto vuelve invisible al clip
contraseñas.onRelease = function () {
   _root.CapturaContra._visible = true; // esto vuelve visible el clip
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 24 May 2007 06:05 pm
Joer, Gaby, muchas gracias! Ahora mismo no tengo tiempo de probarlo. Esta noche me pongo a ello con calma, que me quiero quedar con las cosas en la cabeza, y ya te contaré. Gracias de nuevo.

Por NoEspace

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 May 2007 08:58 pm
Bua! Perfecto! No sólo me va bien, sino que además he aprendido un par de cosas de actionscript que voy a poder aplicar en todo el proyecto. Muchas gracias!!

Por NoEspace

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 07:18 am
Edito: Ya he solucionado lo que pregunto a continuación. Fue un fallo tonto. Los creé como clip de película en vez de botón.

Me ha surgido otro problema al que no le veo lógica ni explicación alguna. Hay dos botones que me parpadean, y no sé porqué será. Me resulta muy complicado de explicar, así que os dejo aquí el swf para que lo veáis por vosotros mismos.

http://img341.imageshack.us/my.php?image=mansindefintivgx5.swf

El problema está en la segunda habitación, así que tendréis que introducir "llave" en las contraseñas y luego hacer click en la puerta. Como podréis ver, la estantería y la chimenea parpadean constantemente. Son botones creados exactamente igual que el sofa y la puerta, por eso no entiendo por qué esos me parpadean.

A ver si me podéis ayudar. Si hace falta, escribo los códigos o cuelgo el .fla.

Gracias.

Por NoEspace

11 de clabLevel



Genero:Masculino  

firefox

 

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