Te muestra la ultima foto siempre porque tienes puesto:
Código :
if ( i=xmax ){
_root.ins_fotos.loadMovie("\\galeria"+numG+"\\"+xmax+".swf");
i=1;
}
en lugar de:
if ( i == xmax )
Por otra parte en la funcion cargarFotos (la ultima que has publicado) veo que has puesto:
var i;
if (i<xmax)
evidentemente i será undefined porque la estás declarando pero no la inicializas, además, al poner var i; estás declarando la variable como local a la función, cuando lo que necesitas es que i sea una variable de la línea de tiempo(global para que nos entendamos). La forma de correcta de hacerlo sería como dice Xroa, en el primer frame (o en el que quieras después de crear el boton) declaras:
Código :
var i=1;
function cargarFoto()
{
if (i<xmax ){ //Mientras no se llegue a la xmax, mostra i y aumentar en 1
_root.ins_fotos.loadMovie("\\galeria"+numG+"\\"+i+".swf");
i++;
}
if (i == xmax)
{
_root.ins_fotos.loadMovie("\\galeria"+numG+"\\"+xmax+".swf");
i=1;
}
}
nombreInstanciaBoton.onRelease = function() {
setInterval (cargarFoto,2000);
}
Un par de cosas, lo de nombreInstanciaBoton.onRelease equivale a poner on(Release) { } dentro del boton.
Lo segundo es que como habrás visto no le pasó ningún parámetro a la funcion cargarFoto, esto es por dos razones:
1. Porque no es necesario ya que la variable que utilizas es la "i", que ya es accesible dentro de la funcion y no hace falta que se la pases.
2. No es correcto que lo siguiente: cargarFoto(x){ _root.loadMovie(x + ".jpg"); i++; } y luego llames a setInterval(cargarFoto, duracion, i);
Esto no es válido porque aunque estés actualizando la i dentro de la funcion cargarFoto, cuando utilizas setInterval se le pasa siempre a la funcion el mismo valor, en este caso, si la i vale uno cuando llamas a setInterval estaras llamando siempre cargarFoto(1); por eso lo correcto es que para cargar la pelicula utilices la variable i, que es la variable que se actualiza: _root.loadMovie(i+".jpg"); en lugar de la "x" que recibe como parametro.
Bueno espero que te sirva de ayuda todo este royo. Suerte, y contesta si consigues resolverlo o si te surge alguna otra duda