Publicidad:
La Coctelera

Secretos de la WEB

25 Junio 2009

LIGHTBOX Y FLASH: COMO LLAMAR A LIGHTBOX DESDE UN BOTÓN DE FLASH?

Bueno, a veces, para hacer en flash un efecto igual al que nos ofrece lightbox, cuando ya tenemos lightbox en nuestro poder puede dar algo de pereza ponernos con las transiciones y el actionscript de flash, básicamente porque lightbox nos lo da hecho.

Pues bien, hay una manera sencilla para hacer posible, que desde un botón de una película flash seamos capaces de abrir una imagen con lightbox, es decir, activar lightbox desde flash. Para levantar una imagen desde lightbox, hay que incluir unos ficheros (lightbox.js y lightbox.css) en el <head></head> de nuestra página web, y después, en el ancla (<a></a>) añadir el atributo rel="lightbox".

Pues bien, como sabemos esto, literalmente no podemos hacerlo en flash, puesto que no trabajamos con etiquetas HTML, así que tendremos que utilizar una herramienta que sea capaz de comunicar ambas tecnologías: Flash y lightbox. La respuesta es rápida, la solución es : Javascript.

Para realizar esto, tendremos que usar una sencilla función javascript que SI podemos llamar a través de flash (por medio de la función getURL)

La función JS es esta:

<script type="text/javascript">
     function LightboxDelegate(url,caption) {
          var objLink = document.createElement('a');
          objLink.setAttribute('rel','lightbox');
          objLink.setAttribute('title',caption);
          Lightbox.prototype.start(objLink);
     }
</script>

Esta función debe ir declarada en el fichero que contenga el swf (archivo de flash).

El siguiente paso es ahora en la película flash. En el botón mediante el cual queremos activar lightbox, tendremos que poner el siguiente código.

on (release){
     getURL("javascript:LightboxDelegate('img/img1.jpg','caption1′)")
}

Explicamos ahora cada una de las funciones para que nos entendamos.

Vamos por orden y comenzamos desde la función de flash. Esta función se ejecutará en el evento "release", es decir, cuando pulsamos el botón en cuestión. Se ejecuta la función getURL, que tiene la peculiaridad de poder llamar funciones javascript desde dentro. En este caso llamamos a la función "LightboxDelegate" y le pasamos como dos únicos parámetros la ruta de la imagen que queremos ver en el efecto lightbox y el 'caption' o subtítulo que aparecerá en el pie de página de foto de lightbox.

Ahora llega la parte más importante. La función LightboxDelegate recibe dos parámetros que le hemos pasado desde la película flash. La imagen y el título que aparecerá a pie de foto. Esta función lo primero que hace es crear dinámicamente un objeto HTML con la función 'createElement'. Este objeto se llamará en nuestra función 'objLink'.  En concreto una etiqueta ancla '<a>'. Posteriormente establecemos, también dinámicamente los dos atributos necesarios con la función 'setAttribute' sobre el nuevo objeto creado: "rel" y "title" y por último con 'LightboxPrototypeStart(objLink), lo que hacemos es aplicar LIGHTBOX sobre el objeto que le pasamos como parámetro, y ya está.

Espero que la info os cunda, para cualquier duda, por aquí estamos. 

servido por mariamm 8 comentarios compártelo

8 comentarios · Escribe aquí tu comentario

Maria

Maria dijo

Gracias, excelente me ayudo muchisisisismo, muchas gracias.

23 Julio 2009 | 01:09 PM

mariamm

mariamm dijo

Pues María ... me alegro mucho!!!!!! :-)

23 Julio 2009 | 01:51 PM

margarita

margarita dijo

Saludos!
Su explicación está superbien expuesta pero yo que soy muy torpe tengo unas dudas:
La funcion

function LightboxDelegate(url,caption) {
var objLink = document.createElement('a');
objLink.setAttribute('rel','lightbox');
objLink.setAttribute('title',caption);
Lightbox.prototype.start(objLink);
}

sta función debe ir declarada en el fichero que contenga el swf (archivo de flash)

¿donde tiene que ir? dentro de nuestra web en flash? en una carpeta en el mismo sitio que el swf de nuestra web? no entiendo esa frase
graciass

29 Septiembre 2009 | 05:52 PM

mariamm

mariamm dijo

Hola Margarita!

Esta función puedes ponerla o bien entre los tags dentro del mismo fichero desde el que se llame el swf o bien dentro de un fichero .js con otras funciones js que tenga definidas para la web y el cual incluiremos en el mismo fichero que contenta el swf de la siguiente manera:

Y ya puedes llamar a la función desde dentro de tu flash.

Espero haberte aclarado algo, en caso contrario, no dudes en decirnos algo!

Saludos!

30 Septiembre 2009 | 08:40 AM

Vladimir Vargas Prado

Vladimir Vargas Prado dijo

Hola Mariamm, primero que todo muchas gracias por tu explicación.
Te quiero hacer una consulta, yo estoy intentando hacer una galeria lightbox en mi fla (uso el MX) pero tengo una duda, si bien es cierto el código que enviaste es muy implementar imágenes unitarias, me gustaría saber si existe la forma de hacer categorías y que luego ellas me muestren las fotos de a una, se puede?
Muchas gracias desde ya. Vladimir

30 Septiembre 2009 | 05:50 PM

Vladimir Vargas Prado

Vladimir Vargas Prado dijo

Sorry, mi web es: http://www.burbumagica.cl en la parte imágenes lo tiré a un html para que funcione y mi intención es mantener todo en flash. Asi lo implementaré en este http://www.burbumagica.cl/site6.swf
Gracias de nuevo.

30 Septiembre 2009 | 05:52 PM

Mariamm (Sin Login)

Mariamm (Sin Login) dijo

Vladimir, no puedo ver tu web.

Desde flash se pueden hacer galerías con lightbox ... ¿es eso a lo que te refieres? ... como no veo el ejemplo, no puedo decirte algo exacto.

Perdona mi tardanza pero he estado ausente durante todo este tiempo.

Sorry.

Dame más detalles para ayudarte

20 Octubre 2009 | 12:23 PM

Vladimir Vargas Prado

Vladimir Vargas Prado dijo

Gracias por tu respuesta, tenía un problema el hosting con los dns, los cuales tuve que cambiar y tardará en estar en línea, pero por mientras se puede entrar acá: http://200.63.98.16/~burbumag/
Mi idea es dejarla como está acá: http://200.63.98.16/~burbumag/index2.htm
Pero por categoría, no de a una como puedes apreciar en la index2.htm (están en el botón naranjo).
Muchas gracias por todo.

20 Octubre 2009 | 03:07 PM

Escribe tu comentario


Sobre mí

Avatar de mariamm

Secretos de la WEB

ver perfil »
contacto »
Estas sesiones de "Datos sobre mí", siempre me han parecido un poco tontos, porque nunca se sabe que poner. Tanto que ya llevo unos meses por aquí hasta que me he decidio a poner algo aquí ... y ya empiezo a sentir que hago el ridículo!, así que lo mejor es ... retirada!





SI A LA VIDA

LA SANGRE ES VIDA
¡¡¡¡NO TESTIGOS DE JEHOVÁ!!!!



















Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera