Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/05/2006, 10:17
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 11 meses
Puntos: 1284
Hola:

Ya que también intentas aprender, te voy a decir como mejorar el código (solo la idea) y comentarte un error que descubrí después...

Bueno, sobre la mejora, sencillamente precargar las imágenes antes de usar el script... no te líes, y en principio no te preocupes por ello, pero es bueno que lo sepas...

Antes de decirte el error te explicaré someramente el código...

setInterval es una función que se ejecuta cada n milisegundos... ese n es el segundo parámetro, y el primer parámetro es la función que debe ejecutarse (en el ejemplo es la función cambiar()...)

O sea que cambiar se ejecuta cada 2000 milisegundos... 2 segundos...

Ahora te explico lo que hace cambiar()... como verás, no tiene parámetros, y usa variables globales...
Esas variables son el array imagenes (cuatro) y actual que está inicializado a 0...

var actual = 0;

Y la única línea de la función asigna al objeto document.images.cambiables (a su atributo src) una nueva imagen...

Con imagenes[actual++ % imagenes.length] uso el valor de la variable actual y luego lo incremento y lo divido por la longitud del array imagenes (imagenes.length)... de esa manera, cuando actual vale 1, se divide por 4 (imagens.length)... y uso el resto (%)...
Cuando actual tenga un valor grande (1000... 100000000...) se dividirá por 4, y se obtendrá un resto entre 0 y 3...

Pues ya se complica un poco la cosa, pero el razonamiento siempre es bueno saberlo...

Ahora te comento el error que descubrí (el comentario del primer párrafo)...
Con este código la primera actualización se hace a los 4 segundos, y no a los 2...

¿Quién descubrirá el error...?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 10/05/2006 a las 10:49