Comunidad de diseño web y desarrollo en internet online

Volver a ejecutar codigo

Citar            
MensajeEscrito el 26 Ene 2013 05:55 pm
Hola gente, tengo un pequeño problema y queria saber si me podian ayudar.

Resulta que tengo un codigo que lo que hace es mostrar un texto letra por letra dentro de un textfield:
a = 0;
Cadena = "Lo que quieras poner";
setea = function () {
if (a<=Cadena.length) {
mi_txt.text = Cadena.substr(0, a++);
mi_txt.setTextFormat(formato);
} else {
clearInterval(tempo);
}
};
tempo = setInterval(setea, 40);

Lo que quiero hacer, es que al llegar el texto al final, un movieclip(); con nombre instancia Flecha que esta invisible se haga visible.
Puse este codigo en un fotograma:
if (a==Cadena.length) {
Flecha._visible = true;
}

Pero no se have visible.
Al principio no entendia el problema. Luego entendi que al empezar el fotograma, La variable "a" es menor a "Cadena.length" (o sea a<=Cadena.length). Por lo que el codigo no se activa. Y cuando el texto llega al final, el codigo para hacer que la flecha se haga visible ya corrio. Por eso mi pregunta es, ¿hay alguna forma de volver a correr el codigo cuando el texto termine de cargarse? Estuve pensando y buscando por ahi pero no encontre nada. Espero puedan ayudarme.

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Ene 2013 01:14 am
hola,

se me ocurre una manera muy facil...

tu tienes un if que dice:

Código ActionScript :

if (a<=Cadena.length) 
{
    mi_txt.text = Cadena.substr(0, a++);
    mi_txt.setTextFormat(formato);
}


Por lo tanto ese if se ejecuta incluso cuando a = Cadena.length que es el último caso, es decir, cuando ya llegamos al final de la cadena y por lo tanto queremos que se muestre la flecha.
Por lo cual dentro de ese if tan solo habría que añadir otro if que se ejecute sólo en ese caso, es decir:

Código ActionScript :


if (a<=Cadena.length) 
{
   mi_txt.text = Cadena.substr(0, a++);
   mi_txt.setTextFormat(formato);
   if ((a-1)==Cadena.length) 
   {
       Flecha._visible = true;
   }
}


Como tu función setea ya está en un bucle de tiempo (40ms), podemos aprovecharlo para compar si está en la última letra de la frase o no.

Espero que te sirva.

Avisanos como te fue!

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 28 Ene 2013 01:46 am
Muchisimas gracias amigo, funciona de mil maravillas. Me has ayudado mucho.

Por javiert239

38 de clabLevel



 

chrome

 

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