Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/02/2013, 15:02
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 7 meses
Puntos: 1567
Respuesta: Ejemplo Interactivo :Clear Intevarls Error para multiples llamadas

Cita:
Iniciado por Albuss Ver Mensaje
¿por que?

Si llamamos varias veces a una función que crea un intervalo, y luego llamamos las mismas veces a otra funcion para limpiar el intervalo , las multiples llamadas a ese cleanInterval son superfuas, no funcionan, ¿por que?


Ejemplo interactivo : http://www.vodoad.com/basf.html

Ps. Pulsa una vez a la funcion que crea un intervalo y luego pulsa una vez a la funcion que "limpia" el intervalo, veras que todo funciona bien, ahora pulsa 1+ veces la funcion que crea un intervalo y pulsa las mismas veces la funcion para "limpiarlo" veras que ya no funciona correctamente.
@Albuss
Analicemos tu código, primero, cambias el color, pero una vez cambiado queda ahi, no se vuelve a cambiar con una condición
if style.color == algo
style.color = otra cosa ...
ok?

Segundo setTimeout demora la ejecución de la función x milisegundos, pero no la repite, salvo que hagas algo como

Código Javascript:
Ver original
  1. function rotate(){
  2. if (imagen_num > 3) {
  3. imagen_num = 0;
  4. }
  5. img = document.Source;
  6. img.src =img_array[imagen_num];
  7. imagen_num++;
  8. var t=setTimeout('rotate()',1000);
  9. }

es decir que una función se llama a si misma.
Tu ejemplo, corregido el tema de cambio de colores, se aplicaría tal vez si utilizases setInteval(), que si repite una función indefinidamente

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.