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

Duda con codigo. (setInterval ...) [Dificultad Alta]

Estas en el tema de Duda con codigo. (setInterval ...) [Dificultad Alta] en el foro de Flash y Actionscript en Foros del Web. Hola maestros, Queria solucionar una cosa que le estube dando muchas vueltas ayer por la noche y no consegui sacarla. La cuestion es la siguiente: ...
  #1 (permalink)  
Antiguo 22/05/2006, 06:25
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
Duda con codigo. (setInterval ...) [Dificultad Alta]

Hola maestros,

Queria solucionar una cosa que le estube dando muchas vueltas ayer por la noche y no consegui sacarla.
La cuestion es la siguiente:
Tengo un campo dinamico de texto en el cual introduzco noticias provinentes de un .txt. Tengo una funcion que lo que hace es almacenar en una matriz el texto fragmentado de manera que a medida que se va avanzando en la posicion de la matriz, esta va incrementando letra a letra, hasta formar el texto entero.
Hasta ahi todo me va bien, ya que uso el setInterval para recorrer una funcion a un determinado ritmo (speed) y lo que hace la funcion es ir mostrando en el texto dinamico cada una de las cadenas de las posiciones de la matriz, consiguiendo asi un efecto de escritura "digital" (se va escribiendo el texto solo).
Quien este interesado en el codigo luego se lo paso.

Pero el principal problema esta en que yo quiero que el usuario pueda ajustar la velocidad de escritura a traves de un "numeric stepper" del 0 al 100 (en %). Lo tengo ya colocado en el escenario, con el nombre de instancia: rap_ns pero me falta por hacer que cuando se modifique el valor del rap_ns la velocidad definida en el setInterval vaya cambiando a medida que cambia el valor del numeric stepper.

Vamos a pasar al fin al codigo:

Código:
speed = 100-rap_ns.value;
display_txt = function (texto) {
	clearInterval(tempo);
	// TEXT = cadena de texto cargado dinámicamente.
	TEXT = texto;
	// Llenamos cada posición de la matriz "text_ar" con las
	// letras de la posición anterior más la siguiente letra de TEXT.
	var text_ar:Array = Array();
	text_ar[-1] = "";
	for (a=0; a<=TEXT.length; a++) {
		text_ar[a] = text_ar[a-1]+TEXT.charAt(a);
	}
	c = 0;
	// Al ir aumentando la variable "c" va recorriendo la matriz "text_ar"
	// y la va mostrando en nuestro campo de texto dinámico.
	efecto = function () {
		if (c<=TEXT.length) {
			noticia_n = text_ar[c]+"_";
			if (!manu) {
				Direccion = "down";
			}
			MoverTexto_n(); // mueve el texto hacia abajo
		} else {
			noticia_n = text_ar[c-1];
			clearInterval(tempo);
		}
		c++;
	};
	cambiar = function () {
		// rap = rapidez de escritura (valor entero del 0 al 100).
		rap = rap_ns.value;
		speed = 100-rap; //hacemos que en cada instante el valor de "speed" este actualizado
		trace(speed);
	};
	tem = setInterval(cambiar, 0);
	tempo = setInterval(efecto, speed); // EN ESTE setInterval QUIERO LOGRAR QUE CADA VEZ QUE SE EJECUTE 
	// EL VALOR DE "speed" SEA DISTINTO Y POR LO TANTO RECORRA LA FUNCION "efecto" A UN DISTINTO RITMO.
};
display_txt("Hola buenos dias, esto es un texto de ejemplo para poder determinar la rapidez de escritura.")
Es decir, tenemos la funcion efecto, la funcion cambiar que actualiza el valor de speed que se corresponde al valor del numeric stepper y tenemos el setInterval para la funcion efecto, cuyo segundo parametro, el tiempo de espera, se actualiza en cada momento.

Mi pregunta es, ¿¿si el valor de "speed" se actualiza a cada instante, porque el siguiente "setInterval" no lo hace con el nuevo valor de "speed"?? Es como si se ejecutara la primera vez, con el primer valor, sin embargo tiene que ejecutarlo repetidamente para que se vaya repitiendo la funcion a la cual esta bucleando no?

Ayuda por favor, se que no es facil el tema pero intenten ayudarme pegando el codigo que puse arriba en un documento y haciendo alguna prueba, se los agradecere muchisimo

Saludos,

ArgoN

Última edición por -=ArgoN=-; 22/05/2006 a las 06:38
  #2 (permalink)  
Antiguo 22/05/2006, 10:00
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 8 meses
Puntos: 0
ola :D
creo que deberías poner el fla a disposicion para que sea más fácil entender el problema y ayudar...

pero según lo que dices, hice esto; para que te sirva de referencia: descarga
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #3 (permalink)  
Antiguo 22/05/2006, 17:17
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
Perfecto! ahora mismo me lo bajo, lo hiciste todo tu? =O

Gracias,

ArgoN
  #4 (permalink)  
Antiguo 25/05/2006, 13:34
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
Hola de nuevo, utilice tu codigo pero no me resulto, cada vez que le doy al "numeric stepper" la velocidad sube muchisimo hasta el punto que se escriben cosas raras y sin sentido. Pasa lo mismo tanto si le doy a bajar velocidad como a subir velocidad. Lo voy a dejar por un tiempo, mas tarde lo voy a retomar a ver si me sale.

Aun tengo la misma duda, como hacer que en un:

setInterval(funcion, velocidad);

el valor velocidad vaya variando en funcion de algun interfaz de usuario...

Gracias a todos,

ArgoN
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 16:08.