Foros del Web » Programando para Internet » Javascript »

Bucle infinito... como finalizar un setTimeout recursivo

Estas en el tema de Bucle infinito... como finalizar un setTimeout recursivo en el foro de Javascript en Foros del Web. Pues, haciendo practicas con eso de mover cosas me encontrao un ligero problemilla El caso es, que hago que al dar click a una imagen ...
  #1 (permalink)  
Antiguo 13/08/2004, 19:16
 
Fecha de Ingreso: septiembre-2003
Ubicación: London
Mensajes: 162
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta Bucle infinito... como finalizar un setTimeout recursivo

Pues, haciendo practicas con eso de mover cosas me encontrao un ligero problemilla

El caso es, que hago que al dar click a una imagen esta empiece a moverse, para ello utilizo el ya mencionado setTimeout para que la funcion se llame a si misma constantemente y la imagen se vaya moviendo, el caso es, que si vuelvo a hacer click en la imagen, ahora la imagen se mueve 2 veces mas rapido, si vuelvo a hacer click, 3 veces mas rapido, y asi, de manera q el bucle se esta ejecutando simultaneamente X veces mas rapido. La cosa no es demasiado molesta si se trata de hacer click en la imagen... pero si haces que al mover el raton la imagen se mueva, al final (a los 5 segundos) eso coje una peazo velocidad que te cagas y se medio bloquea, la imagen es un gif y ya ni se mueve pq la ventana esta demasiado concentrada en desplazarla como pa encima ir pasando frames xDDDDDDd

Tonces, si existe alguna manera de matar un proceso, si yo pudiera detener el bucle de alguna manera, me seria util, el bucle es recursivo, y cuanto mas muevo el mouse mas veces se autollama dandole mas velocidad a la imagen y creando algo realmente espantoso... asique lo suyo seria matar al bucle que ya estaba creado antes que el nuevo se ejecute (por supuesto lo de mover el raton va porque sigue la trayectoria del raton, pero igualmente me seria util para el otro caso, el de al hacer click).

Nadie sabe una manera de matar un bucle de esos por setTimeout recursivo??? :-p

Yo habia pensao en utilizar un interruptor, pero no se me ocurre el como, claro que si existe una funcion que me ayude pos mejor

Última edición por neowebmaster; 13/08/2004 a las 19:22
  #2 (permalink)  
Antiguo 14/08/2004, 08:23
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Has probado con clearTimeout?
  #3 (permalink)  
Antiguo 14/08/2004, 10:51
 
Fecha de Ingreso: septiembre-2003
Ubicación: London
Mensajes: 162
Antigüedad: 20 años, 7 meses
Puntos: 0
Si, perdon, esq da la casualidad que esto sale en otro mensaje y ya encontre la manera y deje este mensaje colgado, sorry :P
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 05:06.