DisenioN : Diseño y más...

Disenion - Diseño Gráfico Diseño Web. Diego González Villarejo

1: 7: 8: 9: 18:

26 mayo, 2007

Imágen de fondo en Flash que ocupa todo el navegador

Muchos habréis visto por ahí webs en flash que utilizan de fondo una imagen que ocupa todo el navegador. A continuación vamos a explicar cómo y además vamos a hacer que esas imágenes cambien de forma aleatoria. Es necesario un conocimiento básico de Action Script para lograr esto. Veamoslo en movimiento:

Flash con Fondo que ocupa todo el navegador y con carga aleatoria de imágenes


Lo primero que necesitamos son las fotos que harán de fondo, tantas como querais, cuantas más haya menos oportunidades de que se repitan. Para este ejemplo he usado 5 por lo que es muy probable que salga la misma dos veces seguidas. Como norma general las imágenes serán cuadradas y tendrán un tamaño de por lo menos 1600x1600 pixels. Comprimidlas en la medida de lo que podáis porque si no os van a salir una imágenes muy pesadas.

Bien pues empezamos. Creamos un nuevo archivo de flash. Con cuatro capas: fondo y AS.

Bien en el primer fotograma en la capa de AS pegamos este código:

Stage.scaleMode = "noscale";
//-----------------------
var StageWidth:Number = 762;
var StageHeight:Number = 510;
function escalaFondo()
{
if (Stage.width > Stage.height) {
fondo._width = Stage.width;
fondo._yscale = fondo._xscale;
} else {
fondo._height = Stage.height;
fondo._xscale = fondo._yscale;
}
fondo._x = (StageWidth - fondo._width) / 2;
fondo._y = (StageHeight - fondo._height) / 2;
}
//-----------------------
Stage.addListener(this);
this.onResize = escalaFondo;
escalaFondo();
//-----------------------
stop();

Explicación del código:

En primer lugar le decimos al flash que no nuestra página no se reescale para que la foto siempre se vea bien, más grande o más pequeña, pero sin deformarse.

Luego declaramos el tamaño que va a tener la parte en la que vamos a trabajar, en nuestro caso: 762x510 pixels (Este tamaño es el mismo que le daremos a la película en sus propiedades, y por favor ponedle por lo menos 30fps de velocidad para que la animación sea fluida).

A continuación declaramos la función "escalaFondo" y le decimos que si cambia el ancho de la pantalla cambie a su vez la posción de nuestro "Stage" y que si se escala en x tambien se escale en y. Además al final ponemos un stop.

Si nos fijamos en el código aparece varias veces "fondo". Este es el nombre de instancia que tendremos que darle a nuestro movieclip que va a contener el fondo a pantalla completa que cambia.

Bien creamos un movieclip con nombre de instancia "fondo" y con un tamaño de 1600x1600px (o el tamaño que le demos a nuestras imágenes) y lo alineamos a la esquina superior izquierda de nuestro stage.

Dentro de este movieclip tenemos 4 capas: imagenes, fundir, carga y AS. En la capa de imagenes tenemos un movieclip que solo contiene un borde negro y que mide 1600x1600 pixeles. A este movieclip le daremos de nombre de instancia "imagenes_mc". Dentro de este movieclip haremos la carga aleatoria de imagenes.

En la capa de fundir tenemos un grafico negro que pasará a transparente para que la animación sea fluida.

En la capa de carga, tenemos una animación de precarga en un movieclip. Utilizad la que más os guste.

Y en la capa de AS pondremos este código:

stop();
imagenes_mc.loadMovie("fotog0"+(1+random(5))+".jpg");
function cargando() {
var total, cargados, t;
total = imagenes_mc.getBytesTotal();
cargados = imagenes_mc.getBytesLoaded();
t = Math.floor((cargados*100)/total);
if (t>=100) {
clearInterval(hiloPrecarga);
play();
}
}
var hiloPrecarga = setInterval(cargando, 1);

Empezamos con un stop para que la animación no avance hasta que este cargada la imagen. Luego con un loadMovie "llenamos" nuestro movieclip imagenes_mc con la imagen aleatoria. Mis archivos de imagenes se llaman fotog01.jpg fotog02jpg... fotog05.jpg. Así que le decimos que carge "fotog0" + un número aleatorio entre 5 y su extensión (en nuestro caso jpg.) Al random le sumamos 1 porque para flash un número aleatorio de 5 pueden ser: 0, 1, 2, 3 y 4.

Trabajando las distintas capas hacemos una animación fundiendo las capas de fundir y de carga para que nos quede fluido. Además así determinamos la duración que tendrá la animación.

Ahora solo tenemos que publicar nuestro archivo. En las opciones de publicación del html le damos a Dimensiones : Porcentaje; y luego ponemos alto y ancho al 100%. La alineación del flash al centro tanto en vertical como en horizontal.

¡Y ya está! Ahora publicamos y cómo veremos nuestro navegador tiene un pequeño borde. Para eliminarlo abrimos el archivo html que hemos creado con cualquier editor e introducirmos en la cabecera el siguiente código:



Terminado, disfrutadlo

Etiquetas:

9 comentarios:

A las 10/14/2007 8:31 p. m. , Anonymous Anónimo ha dicho...

Hola, estaba intentando el tutoria y no me resulta :( esta genial y es casi el unico que he encontrado de esta forma bueno y nada, queria saber si tenias por ahi el .fla :/ o si es mucha mi confianza perdirtelo pero bueno ya me dices algo.
muchas gracias
reinciar@yahoo.com

 
A las 10/14/2007 10:58 p. m. , Blogger Diego González Villarejo ha dicho...

Hola Felipe!

¿Qué parte exactamente no te sale? Me refiero a qué si el problema es en la imágen que ocupa todo el fondo o en la caraga aleatoria.

Te lo digo porque con la carga aleatoria he tenido algun bug que aún no he conseguido corregir.

De todo modos intenta explicarme tu problema y si lo necesitas te pasaré el .fla

Un saludo

 
A las 12/14/2007 11:58 a. m. , Anonymous Anónimo ha dicho...

Hola he hecho el tutorial que me parece muy interesante y sencillo, pero la carga aleatoria de imagenes no funciona.

Me carga la primera y se queda ahí.

Sabeis que puede pasar?

Gracias

 
A las 12/29/2007 6:58 p. m. , Anonymous Anónimo ha dicho...

hola Diego,

he realizado el tutorial y no me funciona. La verdad es que no se donde falla. Me podrías pasar el .fla para ver donde me falla?

zinuzanu@hotmail.com

 
A las 1/03/2008 12:51 p. m. , Anonymous Anónimo ha dicho...

Hola, tampoco me funciona la carga, podrías mandarme el fla, por favor,
te dejo mi mail, gracias de todas formas.

toscana06@gmail.com

 
A las 1/04/2008 2:37 p. m. , Anonymous Anónimo ha dicho...

Hola Diego, soy el de arriba.

Si no te importa tambien agradecería qu me enviases el .fla
a ver si logro que funcione.

ocon10@hotmail.com

Gracias de antemano

 
A las 1/28/2008 11:11 a. m. , Anonymous Anónimo ha dicho...

Hola, me ha encantado este tutorial, pero hay algo que me falla.

Cuando carga todas las fotos se queda la animacion de la precarga ahi constante y no carga mas...no se a que se debe, he revisado el codigo pero nada, no se que pasa, y solo cuando lo subo a internet, en local no falla.
Puedes responderme a jma@silan.es por favor.

 
A las 9/30/2008 10:12 p. m. , Anonymous Anónimo ha dicho...

pues me pasa lo mismo no puedo hacerlo correr , me puedes enviar el fla. a mi correo by_vito@q-arto.com

 
A las 9/30/2008 10:12 p. m. , Anonymous Anónimo ha dicho...

o a este otro ado5set@hotmail.com

 

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio