Lo más escaso en los sitios es el espacio. Es por ello que en más de una ocasión un pequeño espacio que muestre varias imágenes es necesario y suficiente.
Lo que se va a mostrar es cómo generar un banner que muestre varias imágenes al azar.
En principio, tendríamos que contar con las imágenes.
Vamos a suponer que tenemos 4 imágenes.
Los nombres de las imágenes serán el mismo, numerado en forma sucesiva:
Se abre un archivo de Flash, para el caso de AS2.
Se crea un clip vacío, con cualquier nombre, por ejemplo: imagen.
El clip, que está en la librería, se arrastra al escenario. El nombre de la instancia de este clip será imagen_mc, en este clip montaremos cada imagen.
Las imágenes tienen que estar en la misma carpeta donde creamos el archivo swf.
Cada imagen quedará a la vista durante 10 segundos.
Hay dos acciones que deben ocurrir: montarse la foto, quedarse unos segundos, montarse la otra y así.
Las acciones de pausa, entre foto y foto se realizan de la siguiente manera:
Flash cuenta con un método timer que controla pausas. El siguiente método es más sencillo e intuitivo, y se acomoda fácilmente a cualquier conocimiento básico sobre flash.
Usaremos un método que cuente frames, mientras se muestra una imagen. La pausa quedará determinada por la cantidad de frames que contamos mientras la foto se ve.
En el escenario, cree 2 frames, que por ahora estarán vacios, pero en donde luego colocaremos el clip que mostrará las imágenes.
Para ello creamos 3 frames. El timer comienza en el Frame 3 iniciamos el contador, para ello crearemos una variable que llamaremos n que contará frames, colocando : n=1; en el frame 3, y un stop para que no se ejecute solo.
En el frame 4: n++; Cada vez que pase la cabeza lectora por este frame, se le sumará 1 a la variable n creada en el frame 3.
En el frame 5, se ejecuta la acción de continuar o detener la cuenta, la acción sería:
If (n<=1000){
gotoAndPlay(1);
}else{
gotoAndPlay(4);
}
La sentencia indica: Si n es menor o igual a 1000 –en este caso como la cabeza lectora va y viene de un frame 5 al 4, cuenta frames-, entonces vuelve a la acción en el frame 1 –donde se carga la siguiente imagen-, si no, vuelve al frame 4 y suma 1 a la variable n.
¿De cuánto tiempo se está hablando en este proceso?, hacemos una cuenta sencilla.
El tiempo en que se ejecutará este clip, depende de la cantidad de fps –frames por segundos-, definidos para la película. Supongamos que sean 12 fps que es valor por defecto, entonces: 1000/12 son aproximadamente 83 segundos. Esto implica que la imagen se verá durante un minuto y 10.
Frame 3: n=1;
Stop();
Frame 4: n++;
Frame 5: If (n<=1000){
gotoAndPlay(1);
}else{
gotoAndPlay(4);
}
Ya tenemos un procedimiento que crea una pausa entre imagen e imagen.
Ahora tenemos que decidir al azar cuál será la imagen a mostrar entre 4.
Un número al azar en Flash se consigue de la siguiente manera:
nAzar=Math.Ramdom();
Si miramos el contenido de esta variable nAzar, varias veces, ejecutándola una y otra vez, veremos que nos da un número al azar entre 0 y 1, con 16 decimales.
Nosotros necesitamos un número al azar entre 1 y 4, que son la cantidad de fotos que tenemos.
Por ello, primero redondeamos el resultado del número al azar:
nAzar=Math.round(Math.random());
Ahora tenemos dos número solamente, al azar, 0 o 1, nosotros necesitamos hasta 4.
Si multiplicamos este valor por 4:
nAzar=Math.round(Math.random())*4;
Obtendremos un número al azar entre 0 y 4, nosotros no queremos que nos entregue un 0, sino desde 1.
Hacemos esto: obtenemos un número al azar entre 0 y 3, y le sumamos en toda ocasión 1, con ello obtenemos un número al azar entre 1 y 4.
nAzar=(Math.round(Math.random())*3)+1;
Ahora construimos el nombre de la imagen:
Imagen=”data”+nAzar+”.jpg”;
Y ahora la cargamos en el clip que entre imagen e imagen, ejecutamos el clip timer_mc.
En el escenario, tenemos la capa con dos clips, uno es timer_mc, el otro es imagen_mc.
Creamos encima, una capa de Script que contiene los siguientes frames:
Frame 1: nAzar=(Math.round(Math.random())*3)+1;
Frame 2: Imagen=”data”+nAzar+”.jpg”;
Imagen_mc.loadMovie(imagen);
Fin del proceso.
Puedes ver el efecto logrado: El pantalleo que aparece se debe al tiempo de carga de cada foto. Evitar ese efecto será tema de otro tutorial.