Muchas veces hemos visto cargarse un banner de manera aleatoria en Flash, es decir, sin ningún orden en específico, el único secreto detrás de esto es ActionScript. Esto técnica se puede utilizar tanto para cargar dentro del banner una imagen como otro archivo SWF, por lo que las opciones son muchas cuando se va a crear un banner.
En general, cargar una imagen a un banner no difiere mucho de cargar un archivo SWF dentro banner, por lo que el ejemplo a continuación sirve para ambos casos... manos a la obra
.
Carga de imágenes y películas.
En el ejemplo utilizaremos imágenes de tipo JPG y estas serán las que se cargarán dentro del banner. Para iniciar crearemos una película de 350x100. Para facilidad nuestra los archivos que cargaremos van a ser del mismo tamaño que la película, esto nos asegura que no quedarán espacios vacios, además las imágenes tendrán un orden secuencial y estarán en la misma ubicación que la película principal. Las imágenes se llamarán de la siguiente manera:
- imagen0.jpg
- imagen1.jpg
- imagen2.jpg
Teniendo claro lo de las imágenes, el siguiente paso es crear un clip donde se cargarán las imágenes, a este clip le llamaremos banner y lo manejaremos con la variable contenedor:
contenedor = this.createEmptyMovieClip("banner", this.getNextHighestDepth());
El siguiente paso es hacer que el banner cambie cada cierto tiempo, para ello utilizaremos la función setInterval y colocar el tiempo de duración entre imágenes en milisegundos.
setInterval(cargarImagen, 5000);
Y el último paso será cargar la imagen dentro del contenedor con la función loadMovie. El secreto de la carga aleatoria es utilizar la función random, como suponemos que tenemos 3 imágenes el límite del random será igualmente 3.
contenedor.loadMovie("imagen"+random(3)+".jpg");
Para finalizar, la diferencia entre cargar un archivo SWF o un JPG es simplemente cambiarle la extensión. Ahora el ejemplo en concreto:
stop();
//Creamos el clip banner y lo almacenamos dentro de la variable banner
contenedor = this.createEmptyMovieClip("banner", this.getNextHighestDepth());
//Cargamos inmediatamente y alguna de las 3 imágenes
contenedor.loadMovie("imagen" + random(3)+ ".jpg");
//Llamamos cada 2 segundos la función que seguirá cargando las imágenes.
setInterval(cargarImagen, 2000);
//Función encargada de cargar las imágenes con loadMovie
//El random recibe como parámetro un 3 por ende, los números que devolverán
//son 0, 1 ó 2
function cargarImagen(){
contenedor.loadMovie("imagen" + random(3) + ".jpg");
}
