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

problema con carrusel de fotos y setTiemouts

Estas en el tema de problema con carrusel de fotos y setTiemouts en el foro de Flash y Actionscript en Foros del Web. Hola. Llevo un par de dias peleando con un inventillo para una web que me han encargado. Se trata de una ventana donde se van ...
  #1 (permalink)  
Antiguo 14/08/2007, 11:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 10 años, 4 meses
Puntos: 0
problema con carrusel de fotos y setTiemouts

Hola. Llevo un par de dias peleando con un inventillo para una web que me han encargado. Se trata de una ventana donde se van mostrando fotos, la imagen cambia cada cierto tiempo, además he puesto dos botoncillos para que el usuario pueda avanzar o retroceder sin tener que esperar.
Hasta aqui todo muy bien, las fotos van cambiando con su pausa de 5 seg, pero solo si no uso los botones, porque cuando empiezo a cambiar de foto aparentemente funciona, pero lo de los timeouts se descuajaringa. Ya no espera 5 segundos, va a lo loco.

Os dejo unos links:
www.bitpixel.net/varios/requadre_fotos2.fla
www.bitpixel.net/varios/requadre_fotos2.swf
(nota: no me permite insertar enlaces por ser novato en el foro :P )

Hasta ahora he probado con setTimeouts y con un script con setIntervals que he encontrado en otra parte del foro, pero falla exactamente igual. Yo lo veo mas claro con SetTimeouts, pero supongo que no estoy usando bien lo de los clearTimeouts o algo asi.

Alguien puede ayudarme? Gracias por adelantado!
  #2 (permalink)  
Antiguo 14/08/2007, 22:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 12 años, 10 meses
Puntos: 0
Re: problema con carrusel de fotos y setTiemouts

Es el tipico problema de un usuario cuando encuentra funciones como esta, pero no te preocupes se soluciona muy facil, eh pasado muchos minutos de mi vida luchando con esto, en realidad debes matar el proceso de tiempo, el problema es q cada vez que llamas a "setTimeout" o "setInterval" volves a cargar el proceso de ejecucion, osea q si la llamaste dos veces a una misma funcion con setInterval estas duplicando la llamada, si la llamabas cada 2 segundos estarias llamandola cada 1, 1 ,1 ,1 y asi.

Codigo:

Primero q nada debes referenciar con un nombre de id a tu intervalo de tiempo, tanto para setTimeout() como para un simple setInterval().

Código:
//genero un id var para la llamada.
var llamado_a = setInterval(call_func, 2000);
//Funcion llamada
function call_func() {
	trace("funcione una vez sola y cuando me necesites volveme a llamar.");
//Elimino el intervalo de tiempo.
       clearInterval(llamado_a);
}
Para volver a llamar la funcion de intervalo de tiempo vuelves a invocar a:

Código:
var llamado_a = setInterval(call_func, 2000);
Osea q suponte q el cliente esta mirando fotos y tiene un boton de play/plause para seleccionar entre vista automatica o manual ok?
Crea un Boton play y otro pausa y ponele de nombre de instancia btn_play y pausa_btn y pega este codigo en el primer frame de tu pelicula.
Código:
var llamado_a = setInterval(call_func, 2000);
function call_func() {
	trace("funcione una vez sola y cuando me necesites volveme a llamar.");
	//clearInterval(llamado_a);
}
//
btn_play.onPress = function() {
	var llamado_a = setInterval(call_func, 2000);
};
//
pausa_btn.onPress = function() {
	clearInterval(llamado_a);
};
Si no se entendio me avisas, saludos suerte!

Última edición por index000; 14/08/2007 a las 23:01 Razón: correccion de ortografia.
  #3 (permalink)  
Antiguo 16/08/2007, 06:50
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: problema con carrusel de fotos y setTiemouts

Finalmente parece que funciona!
No he hecho exactamente lo que me decias, pero me ha dado un par de ideas. Al final lo he solucionado con setTimeout, y efectivamente el fallo era de los clears.
Ahora, definiendo una variable para saber exactamente que cerrar, funciona. (aunque no acabo de comprender exactamente lo que pasa, pero funciona)

He hecho algo asi:
Código:
function my_delayedFunction() {
	clearTimeout(a);   <---nota: justo despues de pegar esto, me he dado cuenta de esto sobra!
	play();
}

var a = setTimeout(my_delayedFunction,5000);
y he añadido una linea con el clearTimeout en el script de cada boton
Código:
on (release) {
	clearTimeout(a);
	gotoAndStop("foto6");
}
Supongo que el error se daba aqui, al salir a medio setTimeout al darle a un boton. Ahora el mismo boton lo cierra.

De momento funciona, pero en la siguiente fase seguramente volvere por aqui a pedir ayuda, de momento esto era una prueba con solo 6 fotos, pero mas adelante tendre que hacer que lea las fotos de una carpeta, con un numero indeterminado de imagenes. Brrr. Voy a tener que subcontratar a un programador para hacer estas cosillas...

Gracias por la ayuda!

Última edición por xipiman; 16/08/2007 a las 07:00 Razón: correcciones en el codigo pegado
  #4 (permalink)  
Antiguo 16/08/2007, 22:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 12 años, 10 meses
Puntos: 0
Re: problema con carrusel de fotos y setTiemouts

No contrates a nadie, mejor aprendelo vos con ayuda del foro como la mayoria hacemos, asi la proxima desarrollas vos mismo tus aplicaciones.
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 13:58.