Comunidad de diseño web y desarrollo en internet online

Ayuda con Imput text que visualice nombre de usuario en todo el flash

Citar            
MensajeEscrito el 28 Nov 2012 07:16 pm
Hola a todos,

De nuevo recurro a ustedes chicos y chicas del flash para que me ayuden con lo siguiente: Tengo un jueguito en el que al usuario le aparece un campo de texto centrado en la pantalla para que digite su nombre y comience a jugar. La idea es que mientras esté jugando, su nombre aparezca la parte superior de la interfaz.

Mis pasos a seguir son: hice un imput text con su nombre de instancia y un botón donde está el codigo:
on (press){
resultado = "Hola" + usuario;
play();
}

Ahi funciona bien pero en el siguiente frame como ya tengo que poner objetos y sus respectivos codigos etc etc pues ya no me aparece el nombre y al manejar el mismo frame usando solo un f5 el campo de texto siempre me quedaría en la mitad de la pantalla.

Agradezco a quien pueda ayudarme.

Por laurakatze

13 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 29 Nov 2012 05:48 pm
Hola laurakatze, no entiendo bien tu problema....
A ver.. en el primer frame tienes un input text en el cual el usuario coloca su nombre. Tambien este frame cuenta con un boton que al hacerle clic aparece un texto que dice "Hola" + el nombre del ususario....
Luego te vas al segundo frame, y es ahí donde ya no te aparece el nombre del ususario.
Es esto correcto?

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 29 Nov 2012 06:51 pm
Si, bueno finalmente ya ni estoy usando ese codigo porque no me hace nada, solo me manda al siguiente frame. Pero si, el caso es que en el siguiente frame quiero que se me visualice el nombre del jugador ya como texto indexado no como casilla activa. Estaba pensando en el frame 2 poner un codigo para que me haga invisible el imput text y colocar una casilla en la parte superior que sea de texto dinamico y en codigo decirle que en esa casilla (la de texto dinámico) se cargue el texto que está en el imput text, pero no se eso en codigo como se escriba u_u.

Por laurakatze

13 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 29 Nov 2012 07:59 pm
Hola laurakatze,

A ver.. vamos a hacer mas lo que me has descrito pero con un paso intermedio.
Lo que vamos a hacer es lo siguiente: en el frame 1 va a seguir tu input text y tu boton, al hacer clic sobre el boton vamos a validar que haya ingresado el nombre (puede que este en blanco) y luego vamos a grabar su nombre en una variable. En el frame 2 vamos a color un dynamic text y le vamos a colocar la variable que lleva como data el nombre del usuario. Notar que no es necesario que este presente ni el input text ni el boton en el frame 2.

Entonces empezamos.

En el frame 1 vamos a tener un input text cuyo nombre de instancia debe ser nombre_txt. Además estará nuestro botón. Colocarle al botón el siguiente código:

Código ActionScript :

on (release)
{
   usuario = _root.nombre_txt.text;
   if (usuario.length == 0)
   {
      trace ("No coloco nombre")
   }
   else
   {
      trace (usuario);
      gotoAndStop(2);
   }
}


Lo que estamos haciendo ahí es grabar el nombre del usuario en una variable llamada usuario. Luego verificamos la longitud del nombre, si la longitud es 0 (es decir, no coloco nombre), se muestra en pantalla "No coloco nombre", en caso contrario, es decir, si coloco su nombre, se mostrará en pantalla el nombre del usuario, además saltará al frame 2.

Luego en el frame 2 coloca un dynamic text cuyo nombre de instacia sea: usuario_txt.
Luego coloca en siguiente código en el frame 2:

Código ActionScript :

usuario_txt.text = usuario;


Y listo! Eso sería todo!
Por favor pruebalo y comentanos como te fue...

Saludos!!

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 29 Nov 2012 09:25 pm
Funcionó perfecto gracias, sin embargo quiero entender como entra a funcionar el comando _root, porque tengo entendido que se utiliza cuando uno quiere dar una instrucción que se ejecute en la linea de tiempo principal. Inicialmente pensaría que usar un root en la linea de tiempo principal lo que hace es que en este caso por ejemplo guarde datos que se puedan utilizar mas adelante. Gracias por tu colaboración pues me fue de muchísima ayuda.

Por laurakatze

13 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 30 Nov 2012 02:27 am
Chevere que haya funcionado!!
La primera vez que pedi ayuda con un codigo hice exactamente la misma pregunta que tú: "que es _root, como funciona y para que sirve"?

Te lo voy a explicar de la manera que yo lo entiendo (no se si sea la mejor manera de explicarlo, pero así lo entiendo yo).

En los lenguajes de programación orientado a objetos se suele usar la siguiente sintaxis:
objecto.propiedad = valor

es decir, primero coloco el objeto al que quiero hacerle algo, luego coloco lo que le quiero hacer y por ultimo que valor que le voy a dar. Por ejemplo: tengo un cuadrado cuyo nombre de instancia es "cuadrado" y lo quiero hacer invisible, entonces haria esto:
cuadrado._visible = false

ahí estoy poniendo primero mi objeto (cuadrdado), luego la propiedad (visible) y luego el valor (false).... pero que pasa cuando el objeto que quiero modificar esta dentro de otro objeto??
Hagamos un ejemplo irreal (que no existe en ningun lenguaje de programacion) pero lo haremos con la finalidad de entenderlo mejor. Digamos que quiero tender mi cama entonces tendria que hacer:
casa.cuarto.cama._tenderMiCama = true

si te das cuenta ya no ingresé directamente al objeto cama sino que tuve que ingresar primero a mi casa, luego a mi cuarto y por fin a mi cama.

Lo mismo sucede en action script. Ahora si hagamos un ejemplo más real. Me gustaria que lo hagas para que tu misma te des cuenta.
Crea en el primer frame un movie clip con un rectangulo dentro. Ponle de nombre de instancia rectangulo_mc.
En el mismo primer frame, crea un segundo movie clip y llamalo "marco" y dentro de este segundo movie clip crea un boton.
Si te das cuenta ahora estás dentro de la linea de tiempo del movie clip "marco" y todo lo que pongamos ahí sólo afectará a dicha linea de tiempo, entonces como podemos hacer para que al hacerle clic al boton que está dentro de "marco" se haga invisible el movie clip "rectangulo" ???

es ahí donde entra el _root. El _root siempre apunta a la linea de tiempo principal (en donde tenemos nuestros dos movie clip).

Entonces, al botón le colocaremos el siguiente código:

[as]
on (release)
{
_root.rectangulo._visible = false;
}
[\as]

lo que ahí le estamos diciendo es que vaya a la linea de tiempo principal (_root) en la linea de tiempo principal busque a la instancia rectangulo y luego que la haga invisible.

Por ejemplo, si dentro de rectangulo tenemos cuadrado, dentro de cuadrado tenenmos circulo, el codigo seria:

_root.rectangulo.cuadrado.circulo._visible = false;

de esa manera hacemos invisble a circulo.

Espero haber sido claro, si no fue así por favor hazmelo saber que yo gustoso buscare otra manera de explicarlo.

saludos

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 30 Nov 2012 02:47 am
Bueno pues eso si lo entiendo, pero no entiendo es que pasa en el caso de la variable que queda almacenada. Lo digo porque he hecho interactivos donde por ejemplo tengo un contenedor de nombre de intsancia c1 y le doy una instruccion de moverse en un sentido determinado. En el siguiente frame tranquilamente puedo hacer otro contenedor que tambein tenga de nombre de intancia c1 y poner un as en el frame correspondiente con otra instrucion, es decir no tengo lio porque los action que coloco en el frame aplican solamente a un frame a la vez. Quedé pensativa en como se hizo para que la variable que guarde en un frame pueda ser llamada en el siguiente, asumí que todo residia en el _root, pero ahora no se.

Por laurakatze

13 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 30 Nov 2012 03:09 am
Todas las variables y funciones que cras en una linea de tiempo se pueden usar en cualquier lugar de la linea de tiempo.
Si creas una variable en el frame 1 la puedes usar en el frame 5,6,7 .. etc...

en el frame 1 escribe: valor = 5;
anda al frame 15 presiona f7 y escribe trace (valor)

vermas que muestra el 5.... sin embargo, si te vas a la linea de tiempo de un movie clip y escribres trace (valor) no mostrará el 5 dado que en esa linea de tiempo no está definido valor.

el _root lo unico que hace es apuntar siempre a la linea de tiempo principal (es su unica funcion), no almacena variables ni nada.

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 30 Nov 2012 03:15 am
Ah pues muy interesante el dato porque no sabia. Muchísimas gracias, me has ayudado mucho. :D

Por laurakatze

13 de clabLevel



Genero:Femenino  

firefox

 

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