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

Cerrar Banner en flash sobre contenido html

| 28 Comments

Muchas veces podemos observar en ciertas páginas web que tienen banner que flotan sobre sus contenidos y los mismo son en Flash, a estos también se les suma la posibilidad de cerrarlo y de esta manera poder volver a ver el contenido del sitio que el banner tapaba. Estos banner son muy prácticos si queremos destacar alguna promoción o producto importante ya que a tapar parte del contenido del sitio el usuario se ve obligado a verlo o a lo sumo chiclear para cerrarlo. La otra ventaja que tiene es que no es un popup por lo tanto los navegadores no pueden bloquearlo así que doblemente nos aseguramos que lo verán.

Para realizar dichos banner simplemente vamos a necesitar una "div" en nuestro html, un poquito de JavaScript, CSS y nuestra película en Flash.

Ante que todo vamos a preparar nuestro banner en flash, para ello vamos a crear una película cualquiera del tamaño que sea necesario y con las animaciones que sean también necesarias. A esta película le vamos a colocar un botón "Cerrar" que será el encargado de cerrar nuestro banner.

Como siempre en nuestra línea de tiempo principal y primer frame vamos a colocar el siguiente código de AS:

Actionscript:
  1. //Importamos la clase que nos permitirá
  2. //llamar el java de nuestro html
  3. import flash.external.*;
  4. //Creamos la acción de nuestro botón cerrar
  5. boton_btn.onRelease = function() {
  6. //para ejecutar el java usamos el metodo "call"
  7. //que esta compuesto por el nombre de la función "OcultarDiv" y el parametro "midiv"
  8. //en este caso como parametro, el nombre de id de la div a ocultar
  9. ExternalInterface.call("OcultarDiv","midiv");
  10. };

Como ven ya tenemos nuestro flash listo y esperando encontrar en nuestro html una div y una función JavaScript, ahora el siguiente paso es abrir nuestro html con algún editor como DW y vamos a colocar entre las etiquetas head el script que sera el encargado de ocultar la div que contiene el banner en flash.

JAVA:
  1. <script type="text/javascript">
  2. // definiciones basicas
  3. OCULTO="none";
  4. VISIBLE="block";
  5. function mostrar(blo) {
  6. document.getElementById(blo).style.display=VISIBLE;
  7. }
  8. function ocultar(blo) {
  9. document.getElementById(blo).style.display=OCULTO;
  10. }
  11. </script>
  12. <script>
  13. function OcultarDiv(name) {
  14. ocultar(name)
  15. }
  16. </script>

El paso final seria poner una div (CONTENEDORA) entre las etiquetas del swf de nuestro banner. Por las dudas les dejo un ejemplo como seria en los archivos a descargar.

IMPORTANTE: Lo más importante para que este ejemplo funcione es que no se olvide de colocarle un nombre de id a la div en este caso particular le he llamado "midiv". Otra cosa importante es que prueben donde es lo más aconsejable que coloquen la div, en este caso la pusimos arriba sobre todas las restantes etiquetas por la razón que queremos que flote sobre el contenido de nuestro html. Hasta aquí van a ver que ya funciona a la perfección pero surge un problema, el banner no queda sobre los contenidos html!!! Bueno no desespere, ahora nos hacemos de la ayuda de algo de CSS para solucionar dicho problema.

CSS:
  1. #midiv{
  2. width:300px;//ancho del swf
  3. border:#CCCCCC solid 2px;//un borde si queremos
  4. z-index:10000;//orden de apilamiento
  5. position:absolute;//posicion con respecto al body, con las propiedades top y left pueden desplazar el banner si lo desean
  6. }

Ok felicitaciones ya tenemos nuestro banner con botón ocultar dentro de una div flotando sobre el contenido ante cualquier duda descarguen los archivos de ejemplo y podrán ver cómo funcionan la unión de flash, javascript y css!!

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.

28 Comments

  1. no se puede abrir el archivo men, podrias volver a subirlo "formato de archivo ineperado"...

  2. Proba bien porque anda a la prefección

  3. puedes dejar el archivo en frmato de flash 8??
    gracias

  4. Notable, hace mucho tiempo buscaba algo asi, mas que agradecido
    salu2

  5. gracias bro lo nesesitaba para la publidad de la web ,una cosita en la definicion de regla para midiv en borde le dan 0 px para que no les que el bordecito ese que es como feo , bueno muchas gracias

  6. gracias de veras esto he estado buscando pero ninguno me ha ayudado como este

  7. muy bueno... importante hacer notar... se trata de JavaScript y no Java de cualquier forma creo que todos entendimos..

  8. me viene perfecto usando ActionScript 2.0, que cambia en la version 3.0? xq no funciona. gracias de antemano.

  9. En AS3 hay cambios significantes, sobretodo de como escribir el codigo, te recomiendo que lo uses en modo AS2.0, y como vos decis es JavaScript por un error de no repasar lo que uno escribe se comete estas improlijidades, disculpas!

  10. Excelente!!!! justo lo que buscaba, muchas muchas pero muchas gracias

  11. no se pueden descargar los arcuivos de ejemplo

  12. Leo. ¿cómo harias para cerrar el banner despues de x tiempo?

  13. Tengo el mismo problema no me permite abrir el archivo de flash, para ver el código AS

  14. Muchas gracias es muy bueno, nos saco de un apuro n.n

  15. ¡Excelente! Lo estaba buscando hace ya un buen rato. ¡Muchas gracias!

  16. hola! descargue, lo descomprimi pero no funciona .. en ver ejemplo, si funciona danos una solucion..gracias

  17. lo subiste a un servidor para probarlo?, porque asi como dices nunca te va a funcionar!

  18. El .fla sigue tirando el mismo error: "formato inesperado".

    Pero es cuestion de armar un .fla propio, y en el primer frame, colocar el codigo del actionscript publicado arriba, respetando las medidas y el nombre del archivo (para no tener que modificar el codigo en el html).

    Funciona!

    Gracias LeoBaraldi.

  19. que raro con ese file, esta poseido!!! :P bueno el que lo quiera y no le funcione que me lo pida por mail

  20. Caramba que bien la verdad trate de mirar el codigo pero no veo el chiste, a la final me sirvio mucho!!! Gracias !

  21. Muy bueno man, anduvo todo a la perfeccion.

    Saludos,
    Sr.Colo Ramone

  22. Esta bien pero al cerrar se podria dar un efecto? o en todo caso, que el flash vaya desapareciendo desplazandose a uno d elos lados?

  23. Marcelo:

    Corre con Flash CS3, si te manda ese mensaje significa que tienes una version anterior de flash.

  24. Leo una consulta tienes como hacer que la div este oculta al abrir ese html y luego desde otro boton en flash abrir la div... osea que funcione como una ventana emergente pero no intrusiva... osea que desde el flash podamos abrir y cerrar esta div... me funciona perfecto tu ejemplo y es lo que busco pero necesito tb abrirla desde un boton flash.

    Saludos

  25. hola gracias por el tutorial, quiero saber si hay una opcion de cerrar la pelicula sin necesidad del boton, que apenas termine la animacion el flash desaparesca?

    Gracias por el espacio!

  26. IDOLO!!!! ME SALVASTE LA VIDA!!!!

  27. Juan Manuel: yo no sé mucho de flash pero necesitaba que el banner desapareciera a los 5 segundos, así que en el frame correspondiente puse lo siguiente:

    stop();
    import flash.external.*;
    ExternalInterface.call("OcultarDiv","midiv");

    A mí me sirvió. Espero que a vos también.
    Saludos. Y gracias Leonardo por el tutorial.

  28. Que tal Juan Manuel, el codigo que debe llevar el SWF para que desaparesca cuando termine la animación es este...

    Actionscript:
    1. import flash.external.*;
    2.  
    3. _root.onEnterFrame = function (){
    4. ExternalInterface.call("OcultarDiv","midiv");
    5. };

    Este codigo lo tienes que poner el último frame de la línea de tiempo.

    Espero te sirva.

    Saludos.

    Y gracias por el script, me salvo la vida.

    Saludos!

Deja un comentario

Required fields are marked *.

*