LeoBaraldi – Ejemplos Flash, Ejemplos actionscript, Tutoriales Flash, Tutoriales actionscript, actionscript 3, curso de actionscript

Recursos y ejemplos de actionscript, Flash, AIR, Flex, CSS y HTML. Tutoriales de actionscript 2 y actionscript 3

Galeria de fotos con fade auto administrable

| 43 Comments

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.

PHP:
  1. <?php
  2. $No=array(".","..","lista.php", "borrar.php", "Thumbs.db");
  3. $fp=opendir(".");
  4. echo "<?xml version='1.0' encoding='iso-8859-1'?".">";
  5. echo "<files>";
  6. while (false!==($file=readdir($fp))){
  7.     if ((!in_array($file,$No))&&(is_readable($file))){
  8.         echo "<file name='".utf8_encode($file)."' tamanio='".filesize($file)."' />";
  9.     }
  10. }
  11. closedir($fp);
  12. echo "</files>";
  13. ?>

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.

Actionscript:
  1. //Aqui indicamos que use codificasión, por si hay caracteres como ñ, acentos o cosas raras
  2. System.useCodepage = true;
  3. //la carpeta que tiene nuestras fotos, con un nombre medio cambiado por si ya tenemos otra
  4. //carpeta llamada imagenes
  5. var fotos:String = "images/";
  6. //velocidad del efecto entre fotos
  7. var fade:Number = 20;
  8. //primera foto a cargar
  9. var iniciarFoto:Number = 0;
  10. //tiempo que se va a mostrar
  11. var tiempo:Number = 100;
  12. //contador fade
  13. var controlFade:Number = 0;
  14. //contador de tiempo
  15. var controlTiempo:Number = 0;
  16. //creamos un objeto xml porque en definitiva el php nos devolvera un xml
  17. miXML = new XML();
  18. miXML.ignoreWhite = true;
  19. miXML.onLoad = function(ok) {
  20. if (ok) {
  21. misFotos_array = this.firstChild.childNodes;
  22. _root.createEmptyMovieClip("contenedor1_mc", 10);
  23. _root.createEmptyMovieClip("contenedor2_mc", 20);
  24. contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  25. iniciarFoto++;
  26. contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  27. contenedor2_mc._alpha = 0;
  28. curr_mc = 1;
  29. onEnterFrame = function () {
  30. if (curr_mc == 1) {
  31. controlTiempo++;
  32. if (controlTiempo>=tiempo) {
  33. curr_mc = 2;
  34. cambio = "IN";
  35. }
  36. }
  37. if (curr_mc == 2) {
  38. if (cambio == "IN") {
  39. contenedor2_mc._alpha += 100/fade;
  40. if (contenedor2_mc._alpha>=100) {
  41. contenedor2_mc._alpha = 100;
  42. cambio = "FIJO";
  43. controlTiempo = 0;
  44. iniciarFoto++;
  45. if (iniciarFoto == misFotos_array.length) {
  46. iniciarFoto = 0;
  47. }
  48. contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  49. }
  50. }
  51. if (cambio == "FIJO") {
  52. controlTiempo++;
  53. if (controlTiempo>=tiempo) {
  54. cambio = "OUT";
  55. }
  56. }
  57. if (cambio == "OUT") {
  58. contenedor2_mc._alpha -= 100/fade;
  59. if (contenedor2_mc._alpha<=0) {
  60. contenedor2_mc._alpha = 0;
  61. curr_mc = 1;
  62. controlTiempo = 0;
  63. iniciarFoto++;
  64. if (iniciarFoto == misFotos_array.length) {
  65. iniciarFoto = 0;
  66. }
  67. contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  68. }
  69. }
  70. }
  71. };
  72. }
  73. };
  74. //la url de nuestro PHP que crea un xml
  75. miXML.load(fotos+'lista.php');
  76. //

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.

Author: LeoBaraldi

Diseñador gráfico y programador en Web, con experiencia profesional en el rubro desde 1998. Experto en diseño de interfaces Frontend y Backend, sitios, portales y dispositivos móviles. Experto en estándares, CSS y HTML, amplios conocimientos en CEO. Desarrollador de sitios multi plataformas, HTML5, CSS3 y JQuery. Experto programador en Adobe Flex, AIR y ActionScript 3.0. Conocimientos en lenguajes como PHP, Javascript y bases de datos MySQL. Profesor de Diseño y Diseño Web en la Escuela Superior de Diseño Aguas de la Cañada, asesor y colaborador para medios gráficos, editoriales y revistas afines. Actualmente Jefe de Producción en Manifesto solutions.

43 Comments

  1. muchas gracias profe!!! muy util

  2. 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

  3. 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/

  4. 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

  5. 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!

  6. 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

  7. 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.

  8. Hola yo nuevamente, ya lo solucione, el orden tiene que ser 01.png, 02.png ...10.png etc.
    Ahora si lo ordena correctamente.
    Saludos

  9. 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.

  10. 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

  11. 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/

  12. Es cierto, si se pudiera lograr eso quedaría muy hevy... sería la mejor galería que he pillado en Inet ;)

  13. 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..

  14. 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!

  15. muchas gracias era lo que estaba buscando

  16. que galeria tan sexy

  17. 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.

  18. Buenas, no se si podras ayudarme. Veo muy interesante, pero me he descargado los archivos, y no funciona, no se que ocurre.
    Muchas gracias.

  19. comproba que tu server soporte php ;)

  20. 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

  21. excelente!! gracias!

  22. en los articulos de mi joomla me funciona perfectamente (en virtuemart, no)

  23. Hola, necesito ayuda para una galeria te envie un mail, muchas gracias!

  24. Hola exelente trabajo, quiero saber si es posible asignar un vinculo url a cada foto asignada mediante un por php.

    muchas gracias!

  25. Si es posible pero quedaria muy mal sino se usa ya en ese caso BD, te recomiendo que uses XML

  26. 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!!!

  27. 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.?

  28. 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.

  29. 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

  30. 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???

  31. 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

  32. 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

  33. 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.

  34. 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

  35. Me ocurre exactamente lo mismo, en el momento que lo averigue te lo comento goky, y viceversa si lo ves tu.

  36. 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

  37. y còmo le pongo un link distinto a cada foto?.

    Saludos!

  38. Gracias Leonardo, me sacaste de errores simples pero que no me dejaban avanzar
    :)

  39. 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.

  40. 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

  41. 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

  42. 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.

  43. wenisimo no entiendo komo tengo ke llamar a los archivos?

Deja un comentario

Required fields are marked *.

*