Este tutorial surge por la necesidad de un amigo Maximiles que esta incurriendo en los ámbitos de flash, y su consulta es como hacer una galería de imágenes con una transición entre cada foto automáticamente. A la misma sumarle la posibilidad de que con solo tirar las imágenes a una carpeta esta construya la galería sin incurrir en códigos extras como XML.
Bueno para dicho trabajo vamos a usar obviamente flash y un poquito de PHP que será el encargado de recorrer nuestra carpeta de imágenes y generar un XML con las fotos a mostrar. Manos a la obra y mucha atención alumno Maximiles!!!! :P
Ante que todo creamos un php que recorrerá la carpeta que tiene nuestras imágenes y con ellas creara un archivo XML con la info de las mismas.
No vamos a explicar esta porción de código PHP por una razón que nos iríamos del tema, pero no es complicado, y de última así como esta funciona jeje.
Este PHP guárdelo donde están las imágenes, creen una carpeta “img” y dentro de ella colóquelo.
Ahora pasemos a flash:
En nuestro primer frame de nuestra linea de tiempo principal vamos a colocar el código que vamos a crear.
-
//Aqui indicamos que use codificasión, por si hay caracteres como ñ, acentos o cosas raras
-
System.useCodepage = true;
-
//la carpeta que tiene nuestras fotos, con un nombre medio cambiado por si ya tenemos otra
-
//carpeta llamada imagenes
-
var fotos:String = "images/";
-
//velocidad del efecto entre fotos
-
var fade:Number = 20;
-
//primera foto a cargar
-
var iniciarFoto:Number = 0;
-
//tiempo que se va a mostrar
-
var tiempo:Number = 100;
-
//contador fade
-
var controlFade:Number = 0;
-
//contador de tiempo
-
var controlTiempo:Number = 0;
-
//creamos un objeto xml porque en definitiva el php nos devolvera un xml
-
miXML = new XML();
-
miXML.ignoreWhite = true;
-
miXML.onLoad = function(ok) {
-
if (ok) {
-
misFotos_array = this.firstChild.childNodes;
-
_root.createEmptyMovieClip("contenedor1_mc", 10);
-
_root.createEmptyMovieClip("contenedor2_mc", 20);
-
contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
-
iniciarFoto++;
-
contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
-
contenedor2_mc._alpha = 0;
-
curr_mc = 1;
-
onEnterFrame = function () {
-
if (curr_mc == 1) {
-
controlTiempo++;
-
if (controlTiempo>=tiempo) {
-
curr_mc = 2;
-
cambio = "IN";
-
}
-
}
-
if (curr_mc == 2) {
-
if (cambio == "IN") {
-
contenedor2_mc._alpha += 100/fade;
-
if (contenedor2_mc._alpha>=100) {
-
contenedor2_mc._alpha = 100;
-
cambio = "FIJO";
-
controlTiempo = 0;
-
iniciarFoto++;
-
if (iniciarFoto == misFotos_array.length) {
-
iniciarFoto = 0;
-
}
-
contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
-
}
-
}
-
if (cambio == "FIJO") {
-
controlTiempo++;
-
if (controlTiempo>=tiempo) {
-
cambio = "OUT";
-
}
-
}
-
if (cambio == "OUT") {
-
contenedor2_mc._alpha -= 100/fade;
-
if (contenedor2_mc._alpha<=0) {
-
contenedor2_mc._alpha = 0;
-
curr_mc = 1;
-
controlTiempo = 0;
-
iniciarFoto++;
-
if (iniciarFoto == misFotos_array.length) {
-
iniciarFoto = 0;
-
}
-
contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
-
}
-
}
-
}
-
};
-
}
-
};
-
//la url de nuestro PHP que crea un xml
-
miXML.load(fotos+'lista.php');
-
//
NOTA: Recuerden que esta galeria requiere un servidor de php, asi que sino tienen uno de tipo localhost, subalon a su sitio o a un sitio que soporte php.
Las imágenes van en la carpeta images y dentro de el va el archivo php, el swf va fuera de esa carpeta.
3 febrero, 2007 at 8:48 pm
muchas gracias profe!!! muy util
17 febrero, 2007 at 1:45 pm
Funciona Perfecto pero cada vez que inicio la pagina veo las fotos en el mismo orden, como podriamos aplicarle un random al array generado por el php? muchas gracias
20 febrero, 2007 at 12:42 am
Gracias por tu consulta, en este link tenes la respuesta ;)
http://www.leobaraldi.com.ar/2007/02/20/desordenar-un-array-random-en-flash-8/
6 marzo, 2007 at 4:25 pm
Hola, excelente website, tengo una duda, he querido modificar la altura y el ancho para el swf pero no encuentro la forma de como hacerlo, ya que si pongo una imagen de otro tamaño, se achica... espero me puedas ayudar
saludos
6 marzo, 2007 at 9:09 pm
Hola Martin, es raro el problema que mensionas, pero se me hace que es por el cache de tu navegador. Recuerda probar la galeria en tu localhost y borra el cache de tu navegar. Tambien te recomiendo que las fotos que tengas, en lo posible sean todas del mismo tamaño y que esten livianitas, para alivinarlas podes usar Fireworks. Si el problema persiste mandame un link donde pueda verlo y vemos que puede hacer, un abrazo!
12 abril, 2007 at 8:10 pm
hola, Leo, gracias por este ejemplo, pero hay algo que no me funciona bien, las imagenes no siguen el orden, yo las he numerado y no me las muestra en orden, hay que modificar algo?
Muchas gracias
12 abril, 2007 at 8:13 pm
Hola nuevamente, puedo agregar algun codigo para que a las fotos las coloque en orden segun su nombre numerico?, es decir mis fotos tienen los siguiente nombres:
1.png , 2.png, 2.png..etc.
12 abril, 2007 at 9:02 pm
Hola yo nuevamente, ya lo solucione, el orden tiene que ser 01.png, 02.png ...10.png etc.
Ahora si lo ordena correctamente.
Saludos
8 agosto, 2007 at 10:06 am
Hola, yo tambien soy una recién iniciada y mi consulta es la siguiente: tengo en una película, una galeria de fotos donde cada foto esta en 1 fotograma, cómo hago un FADE cuando cada una de esas fotos se carga.
9 agosto, 2007 at 5:15 pm
Hola Valeria, imposible que hagas un fade de cada foto ya que las tenes en diferentes fotogramas. Lo unico que podes hacer es aplicarle un efecto a cada una cuando entran. Lo recomendable seria que levantes las fotos desde fuera de tu swf cosa que de esa manera puedas controlar la carga y efectos a tu gusto. Cualquier cosa mandame un mail o agregame al msn.
gracias
31 agosto, 2007 at 10:53 am
ok todo funcionma bien pero dearia saber como implementarel unos botones para adelantar retroceder y un botn para ser pausa y luego reaubadar la animacion. algo asi como esto.
http://www.metoperafamily.org/metopera/
18 noviembre, 2007 at 12:09 pm
Es cierto, si se pudiera lograr eso quedaría muy hevy... sería la mejor galería que he pillado en Inet ;)
8 febrero, 2008 at 6:47 pm
Hola LeoBaraldi quisiera saber donde puedo conseguir un componente de galleria de fotos administrable para montarlo en una pagina html si me pudes ayudar te agradezco, soy de colombia..
11 febrero, 2008 at 12:40 pm
http://www.airtightinteractive.com/projects/autoviewer/ fijate si esta galeria te sirve amigo, sino avisame y hacemos una nueva con todas las funcionalidades ya que muchos me consultan sobrte este tema y creo que seria bueno ya hacer una nueva galeria con todas las funciones lista para usar!
16 marzo, 2008 at 8:54 pm
muchas gracias era lo que estaba buscando
29 mayo, 2008 at 12:57 am
que galeria tan sexy
19 junio, 2008 at 8:04 am
Hola, quiero hacer una galeria de fotos con carga dinamica de un archivo.xml. Quiero que aparezcan todas las fotos (pequeñas) al cargar el .xml y al pinchar sobre cada una q se cargue la foto grande y un texto descriptivo. Todo eso dinamicamente, q se puedan cambiar fotos y texto desde .xml sin tocar el codigo actionscript. Por favor si alguien me puede ayudar. Muchas gracias.
25 noviembre, 2008 at 1:09 pm
Buenas, no se si podras ayudarme. Veo muy interesante, pero me he descargado los archivos, y no funciona, no se que ocurre.
Muchas gracias.
25 noviembre, 2008 at 10:13 pm
comproba que tu server soporte php ;)
26 noviembre, 2008 at 4:58 am
Buenas de nuevo. Muchas gracias por tu respuesta. Si mi servidor si soporta php, tengo otras aplicaciones en funcionamiento que requieren php. Pero no funciona ni en mi propio pc, por lo que me doy cuenta, supongo que tengo que montar el archivo fla, no funciona directamente, parece que viene vacio. No?
Perdna mi torpeza, te agradeceria mucho si pudieses ayudarme.
Muchas gracias
9 diciembre, 2008 at 2:46 pm
excelente!! gracias!
9 diciembre, 2008 at 2:50 pm
en los articulos de mi joomla me funciona perfectamente (en virtuemart, no)
12 diciembre, 2008 at 11:01 am
Hola, necesito ayuda para una galeria te envie un mail, muchas gracias!
19 diciembre, 2008 at 1:38 pm
Hola exelente trabajo, quiero saber si es posible asignar un vinculo url a cada foto asignada mediante un por php.
muchas gracias!
22 diciembre, 2008 at 9:18 pm
Si es posible pero quedaria muy mal sino se usa ya en ese caso BD, te recomiendo que uses XML
30 diciembre, 2008 at 3:00 pm
Hola gracias por tu respuesta!
soy nueva en esto como verás...quisiera me dieras una luz de como insertar o llamar el xml exactamente en donde hacerlo, he intentado pero no lo logro, gracias de nuevo y FELIZ AÑO NUEVO!!!
24 enero, 2009 at 12:56 pm
Hola, tengo una consulta, ya tengo mi archivo de la galeria en PHP, ahora el problema es que no se como llamar ese archivo php desde Flash. el codigo que tienes me puede servir.?
22 abril, 2009 at 8:29 am
Hola LeoBaraldi
Recien inicio en el diseño de pag web, si me puedes colaborar te agradeceria inmensamente.
Diseñe la pag con dreamweaver le quise poner una galeria de fotos de manera que primero tuviera una vista de previa de todas las imagenes en tamaño pequeño y al dar clic sobre una imagen esta se agrande.
Eso es bastante sencillo y hasta ahi funciona bien.El Problema que tengo es que cuando la pag esta hubicada en el hosting me borra algunas imagenes, y no se cual es la causa.
30 abril, 2009 at 12:50 pm
está súper bueno el códgio, gracias.
Necesito autoajustar las medidas de la imagen. Dejar el alto fijo y el ancho variable... muchas gracias
5 mayo, 2009 at 4:39 am
Hola quiero felicitaros por esta pagina y sus enseñanazas, pero tengo unas dudas, lo he realizado tal cual pero no me aparecen las imagenes y se queda en blanco, ademas a mi no me genera el thumbs como a ti, que hago mal???
6 mayo, 2009 at 8:46 am
joder mucho cuidado, ya lo encontre el problema. CUIDADO CON EL TIPO DE AS QUE USAIS, ESTE CODIGO NO ES COMPATIBLE CON AS3 POR LO QUE SE DEBERA SELECCIONAR AL ABRIR UN NUEVO ARCHIVO DE FLASH EL AS 2.0
7 mayo, 2009 at 8:29 pm
mateo: Si te fijas bien cada cosa tiene su categoría, este pertenece a la de AS2, y para tu aclaración cuando es AS3 no solo tiene su propia categoría sino tambien que lo aclaro en el titulo
8 mayo, 2009 at 2:13 am
hola de nuevo, ya te envie un mensaje pero te lo digo por aqui tb. Haber si se puede realizar este proyecto pero sin php, es decir con otro programa o archivo de texto y eso, de todas formas tb me gustaria tener varios botones, avanzar,retroceder, play y pause por ejemplo. Haber si me puedes ayudar por favor. Y Pedazo de página que tienes, muy buena.
9 mayo, 2009 at 10:31 am
Buenas Profesor, soy nueva en esto estuve probando lo que usted explicaba del recorrido y carga de imagenes de un directorio, pero no me funciona me sale Error opening URL 'file:///I|/image/undefined' cuando genero el swf, lo he revisado varias veces segun el tutorial que usted ha explicando y no logro que me funcione, en que me estoy equivocando. Gracias por su atencion
13 mayo, 2009 at 5:26 am
Me ocurre exactamente lo mismo, en el momento que lo averigue te lo comento goky, y viceversa si lo ves tu.
1 junio, 2009 at 4:24 pm
oyes Leo, cargo tu ejemplo en el localhost y funciona muy bien pero cuando profunciso mas en las carpetas, ya no funciona, he revisado el codigo vastante pero no logro hacerlo funcionar, podrias orientarme
17 julio, 2009 at 7:43 pm
y còmo le pongo un link distinto a cada foto?.
Saludos!
13 enero, 2010 at 12:39 am
Gracias Leonardo, me sacaste de errores simples pero que no me dejaban avanzar
:)
22 enero, 2010 at 7:23 am
Hola. He visto tu código y lo he utilizado, porque era justo lo que quería. No se absolutamente nada de flash, pero lo he adaptado y me va perfectamente. Sólo un pequeño problema: Me gustaría que la animación no se repitiera al llegar al final, sino que se quedara parado en la última foto. He visto por ahí que hay que poner la fución stop(), pero no sé dónde. ¿Podrías ayudarme? Muchísimas gracias.
14 diciembre, 2010 at 6:28 pm
como puedo hacer para que la galeria sea autoadministrable?
hay posibilidad de poder hacer una conexion entre un gestor de contenidos o que me sugieren?
muchas gracuas desde ya
11 enero, 2011 at 2:45 pm
hola, eh estado intentando insertar un logotipo como vector sobre el mismo archivo swf, pero al iniciar la carga de imagenes aleatorias, estas se sobreponen sobre el mismo logo, quisiera saber como puedo evitar que esto ocurra a modo de que el logo se visualice siempre sobre la secuencia aleatoria de imagenes.
Saludos Cordiales
11 febrero, 2011 at 1:00 pm
Viejo que bacano saber que hay personas como tu que alimentan la red de contenidos muy buenos y no eres mesquino con el saber, felicitaciones y larga vida para tu blog.
26 octubre, 2011 at 5:20 pm
wenisimo no entiendo komo tengo ke llamar a los archivos?