Google Web after-hours

Contador en flash JSFL Traductor

Este script carga películas SWF o imágenes JPG de forma rotativa cada intervalo de tiempo definido por una variable. Para hacerlo más atractivo, he añadido un efecto de fundido.

// – la variable tiempo, controla la frecuencia
// – con que se sucede el cambio de imagen
tiempo = 5;
// – función que se encarga de crear un efecto de fundido
// – entre la imagen saliente y entrante
transparencia = function (velocidad, actual, siguiente) {
        // activo la pelicula siguiente
        siguiente._visible = true;
        this.onEnterFrame = function() {
                if (actual._alpha<=0) {
                        actual._alpha = 0;
                        siguiente._alpha = 100;
                        // – desactivo la pelicula anterior
                        actual._visible = false;
                        delete this.onEnterFrame;
                }
                actual._alpha -= velocidad;
                siguiente._alpha += velocidad;
        };
};
// – array imagenes, cada elemento es una imágen
imagenes = new Array();
imagenes[0] = “entrevista_ash.swf”;
imagenes[1] = “tuto_flascom1.swf”;
for (i=0; i<imagenes.length; i++) {
        // – creo un clip de pelicula contenedor por
        // – cada elemento que contiene el array
        this.createEmptyMovieClip(“holder”+i, i+100);
        item = this[“holder”+i];
        // – cargo la imagen en su respectivo clip contenedor
        item.loadMovie(imagenes[i], i+100);
        // – escondo la imágen
        item._alpha = 0;
        // – activo la propiedad _visible = false
        // – para evitar que se solapen botones en los
        // – pelí culas en niveles inferiores
        item._visible = false;
}
// – provoco que se vea la primera imagen
item._alpha = 100;
// –
item._visible = true;
// – creo un bucle que se repite cada intervalo de tiempo
// – marcado por la variable tiempo
setInterval(function () {
        // – guardo en una variable el nombre de instancia
        // – siguiente
        actual = _root[“holder”+indice];
        indice++;
        // – ruptura de control
        if (indice == imagenes.length) {
                indice = 0;
        }
        // – defino el siguiente clip que se visualizará
        siguiente = _root[“holder”+indice];
        // – llamada a la función que hace el efecto fundido
        transparencia(10, actual, siguiente);
}, tiempo*1000);
// -

Nota

Puede chocar el hecho de que cuando cargo las pelí culas en los clips contenedores, al mismo tiempo asigno la propiedad _visible = false y _alpha=false, esto tiene una razón de ser:

Activo _alpha=false, para más tarde crear el efecto de fundido, es decir, cuando una imagen entra, se aumenta el valor de la propiedad hata alcanzar el máximo que es 100 y a la pelí cula que sale, se le aplica lo contrario.

�Entonces para que la sentencia _visible=0?

Con este script, puedes cargar imágenes JPG archivos SWF. En el caso de que los SWF cargados tuvieran botones, solo podriamos acceder a los eventos de botón de la pelí cula que estuviera en el nivel mas alto.

En otra situación, utilizarí a la propiedad enabled, pero creo que es más sencillo como lo he hecho, pues no tengo que preocuparme de niveles ni rutas.

Puedes descargar los archivos de ejemplo aquí

8 Responses to 'Banner rotativo con efecto de fundido'

  1. Galileo Says:

    Toni, gracias por alegrarme la mañana.
    Felicidades.

  2. tonilopez Says:

    Celebro que te haya gustado el script (supongo que lo dices por eso)

    He hecho una ligera modificación, he movido esta lí nea al principio del evento enterframe (mirr script):

    // activo la pelicula siguiente
    siguiente._visible = true;

    Como estaba antes, el efecto era incorrecto, ya que la imagen que salí a si mostraba la transición, mientras que la entrante aparecí a de repente, era de lógico ya que mantení a la propiedad _visible = 0 hasta el final del evento enterframe en la función.

    Tambien he subido los archivos modificados para su descarga.

    Si no me he explicado, compara las dos versiones y notarás la diferencia.

    saludos.tonilopez

  3. Galileo Says:

    Ok Toni, sip, ahora está mucho mejor.
    Ya habí a observado ese detalle.
    Y por su puesto, que es por el script y por tu labor.

    Gracias

  4. Roberto Says:

    Gracias, por estos prototipos no saben cuanto me ayudan
    son muy grandes Masters (Tony y Galileo)
    Saludos.- :mrgreen:

  5. Omar Rios Says:

    Hola pues es muy buen prototipo , pero tengo algunas preguntas:

    este archivo me funciona perfecto solo, pero al cargarlo en otro swf solo aparece la primera imagen y ya los demas no..

    me pueden ayudar??

  6. Martin D. Says:

    hola! queria saber como hago para que la segunda imagen no me pise la primera..
    especificamente:
    1.- carga la primer imagen;
    2.- entra la segunda y la primera añun permanece.

    Bueno desde ya muchas gracias!!!

  7. Walter Says:

    Me funciona muy bien el flash pero ahora yo quiero que las imagenes se cargen de forma aleatoria, ya prove modificar varias cosas pero no lo he logrado me puedes ayudar? espero tu respuesta pronto….

  8. tonilopez Says:

    Hey Walter, un ejemplo de carga aleatoria:

    http://www.after-hours.org/blog/archives/2004/03/17/carga_aleatoria/

    Saludos