Comunidad de diseño web y desarrollo en internet online

algo se suma a veces y no se que es

Citar            
MensajeEscrito el 28 Jul 2012 07:56 pm
Bueno, amigos del foro, tengo el siguiente problema. Estoy haciendo una historia, y en cada fotograma aparece un dialogo que aparece letra pro letra el cual esta creado con el siguiente codigo:

escribió:

a = 0;
Cadena = "El texto que se me antoja.";
setea = function () {
if (a<=Cadena.length) {
mi_txt.text = Cadena.substr(0, a++);
mi_txt.setTextFormat(formato);
} else {
clearInterval(tempo);
}
};
tempo = setInterval(setea, b);


b, la declaro al principio como global (porque luego hago que se carguen varios swf en esa misma pelicula que van a necesitar esa variable).

escribió:

_global.b = 30;


Para avanzar, cree un boton que abarca toda la pantalla y es transparente. Por lo que al cliquear avanzo al siguiente dialogo.
A ese boton le puse el siguiente codigo.

escribió:

on (press) {
if (a<=Cadena.length) {
a=Cadena.length;
c=Cadena.length;
}
else {
nextFrame();
}

}


Lo que sucede, es que a veces en determinado momento, el texto empieza a escribirse a una velocidad mas rapida, por lo que creo que escribi algo mal y por eso se suman variables y no se que es. Pero el texto puede empezar a actuar asi tanto al principio como en la mitad, no es ni un punto especifico, ni una determinada seccion, es en cualquier parte. Y solo ocurre a veces, y puede ocurrir cliqueando rapidisimo o cliqueando cuando el texto va por la mitad. Tambien probe colocar un texto dinamico que abarcara la totalidad de la pelicula y le agregue el codigo "eltexto.text= b;", asi podia saber si esa variable cambiaba, porque es la que determina la velocidad del texto. Pero el mismo empezo a ir rapido y la variable b no se movio de 30. Asi que no tengo idea de porque sucede esto, espero puedan ayudarme.

Por javiert239

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Jul 2012 01:25 pm
El tema es que se crea un setInterval sin borrarse el anterior, por lo cual se suman. Antes de empezar siempre haz

clearInterval(tempo);

Por las dudas. En as3 te da error y deberías usar try/catch, pero en AS2 se lo traga tranquilamente, aún cuando tempo no exista

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 04:34 pm
Muchas gracias amigo, probare a ver si con eso se soluciona.

Por javiert239

38 de clabLevel



 

chrome

 

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