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:
-
//Importamos la clase que nos permitirá
-
//llamar el java de nuestro html
-
import flash.external.*;
-
//Creamos la acción de nuestro botón cerrar
-
boton_btn.onRelease = function() {
-
//para ejecutar el java usamos el metodo "call"
-
//que esta compuesto por el nombre de la función "OcultarDiv" y el parametro "midiv"
-
//en este caso como parametro, el nombre de id de la div a ocultar
-
ExternalInterface.call("OcultarDiv","midiv");
-
};
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.
-
<script type="text/javascript">
-
// definiciones basicas
-
OCULTO="none";
-
VISIBLE="block";
-
function mostrar(blo) {
-
document.getElementById(blo).style.display=VISIBLE;
-
}
-
function ocultar(blo) {
-
document.getElementById(blo).style.display=OCULTO;
-
}
-
</script>
-
<script>
-
function OcultarDiv(name) {
-
ocultar(name)
-
}
-
</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.
-
#midiv{
-
width:300px;//ancho del swf
-
border:#CCCCCC solid 2px;//un borde si queremos
-
z-index:10000;//orden de apilamiento
-
position:absolute;//posicion con respecto al body, con las propiedades top y left pueden desplazar el banner si lo desean
-
}
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!!
5 septiembre, 2007 at 6:46 pm
no se puede abrir el archivo men, podrias volver a subirlo "formato de archivo ineperado"...
6 septiembre, 2007 at 4:08 pm
Proba bien porque anda a la prefección
20 octubre, 2007 at 12:44 am
puedes dejar el archivo en frmato de flash 8??
gracias
22 noviembre, 2007 at 10:57 pm
Notable, hace mucho tiempo buscaba algo asi, mas que agradecido
salu2
12 diciembre, 2007 at 2:10 am
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
15 abril, 2008 at 9:45 pm
gracias de veras esto he estado buscando pero ninguno me ha ayudado como este
3 junio, 2008 at 6:17 pm
muy bueno... importante hacer notar... se trata de JavaScript y no Java de cualquier forma creo que todos entendimos..
3 junio, 2008 at 6:37 pm
me viene perfecto usando ActionScript 2.0, que cambia en la version 3.0? xq no funciona. gracias de antemano.
3 junio, 2008 at 8:50 pm
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!
18 junio, 2008 at 12:55 pm
Excelente!!!! justo lo que buscaba, muchas muchas pero muchas gracias
20 junio, 2008 at 10:51 am
no se pueden descargar los arcuivos de ejemplo
25 julio, 2008 at 1:20 am
Leo. ¿cómo harias para cerrar el banner despues de x tiempo?
8 octubre, 2008 at 7:05 pm
Tengo el mismo problema no me permite abrir el archivo de flash, para ver el código AS
17 octubre, 2008 at 7:57 pm
Muchas gracias es muy bueno, nos saco de un apuro n.n
26 noviembre, 2008 at 6:44 pm
¡Excelente! Lo estaba buscando hace ya un buen rato. ¡Muchas gracias!
27 noviembre, 2008 at 3:56 pm
hola! descargue, lo descomprimi pero no funciona .. en ver ejemplo, si funciona danos una solucion..gracias
27 noviembre, 2008 at 8:59 pm
lo subiste a un servidor para probarlo?, porque asi como dices nunca te va a funcionar!
23 diciembre, 2008 at 9:09 am
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.
26 diciembre, 2008 at 4:19 pm
que raro con ese file, esta poseido!!! :P bueno el que lo quiera y no le funcione que me lo pida por mail
1 enero, 2009 at 5:10 pm
Caramba que bien la verdad trate de mirar el codigo pero no veo el chiste, a la final me sirvio mucho!!! Gracias !
9 octubre, 2009 at 3:51 pm
Muy bueno man, anduvo todo a la perfeccion.
Saludos,
Sr.Colo Ramone
12 noviembre, 2009 at 12:22 am
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?
5 diciembre, 2009 at 11:24 pm
Marcelo:
Corre con Flash CS3, si te manda ese mensaje significa que tienes una version anterior de flash.
26 marzo, 2010 at 2:27 pm
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
2 febrero, 2011 at 9:16 pm
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!
2 julio, 2011 at 12:03 pm
IDOLO!!!! ME SALVASTE LA VIDA!!!!
1 agosto, 2011 at 1:39 pm
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.
31 agosto, 2011 at 4:13 pm
Que tal Juan Manuel, el codigo que debe llevar el SWF para que desaparesca cuando termine la animación es este...
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!