Hola a todos, este foro fue de gran ayuda, pero en mi caso, no necesitaba abrir solo una galeria, si no diferentes e inumerables PopUps en diferentes paginas de mi sitio, que bien podian ser una imagen, un archivo interno, un vinculo interno o un vinculo externo, cualquiera de los anteriores, pero desde un botón en flash.
Revise por 2 días paginas con información y ayudas relacionadas a "greybox desde flash", pero en la mayoria de los casos, las lineas de codigo y las funciones, no aplicaban o estaban mal escritas, el resultado: pantalla en blanco con la palabra "false".
Como solución, adapte parte del codigo que encontre en este sitio y del sitio de greybox en la pestaña "uso avanzado", despues de investigar mucho en internet, hacer pruebas y consultar a un Ingeniero Senior, este es el resultado comprobado que tal vez alguno de ustedes puede necesitar.
En mi proyecto se presentaron 2 problemas:
1. Lanzar correctamente el pop up con el efecto greybox desde botón flash
2. Abrir un pop up con efecto greybox desde un iframe, ya sea con un botón en flash o con un vinculo de texto o de imagen en html, sin que se abra dentro del iframe si no desde la pagina padre (encima de iframe).
Para aquellas personas que necesiten ayuda con estos dos problemas, aqui les dejo la solución garantizada:
1. Lanzar correctamente el pop up con el efecto greybox desde botón flash
Con esta forma, no necesitamos scripts dentro del html, la llamada de la función la haremos unicamente desde el botón de nuestro flash. Asi evitaremos llenar nuestro html de funciones, vinculos, titulos y demas en caso de tener x numero de vinculos por llamar (hablo de diferentes botones en flash y vinculos desde html en una sola pagina).
Esta es la forma correcta de hacer el llamado de la funcion y asi es como se deben escribir los parametros, se debe cumplir con el parametro 'titulo' y 'url'.
on (release){
getURL("javascript:void(
GB_showFullScreen('google','http://www.google.com'));");
}
Tambien se puede llamar cualquiera de las otras funciones de la libreria, como son: GB_show, GB_showCenter, GB_showFullScreen, GB_showImage, GB_showPage, GB_showFullScreenSet y GB_showImageSet. Solo debemos reemplazar el nombre de la función, que en nuestro ejemplo es
GB_showFullScreen, por la que necesiten.
2. Abrir un pop up con efecto greybox desde un iframe, ya sea con un botón en flash o con un vinculo de texto o de imagen en html, sin que se abra dentro del iframe si no desde la pagina padre (encima de iframe).
Si estamos lanzando el pop up desde un iframe, donde hemos insertado un swf, se debera agregar
parent. a la funcion que llamemos.
Para un botón en flash, quedaria así:
on (release){
getURL("javascript:void(
parent.GB_showFullScreen('google','http://www.google.com'));");
}
Para un vinculo de texto o de imagen desde un html, quedaria así:
<a href="javascript:void(
parent.GB_showFullScreen('google','http://www.yahoo.com'));" title="Yahoo" >Launch Yahoo.com in fullscreen window</a>
Por último, es necesario ajustar en nuestro swf el parametro
wmode para que el fondo de la pelicula sea transparente, esto para evitar que se vea la animación sobrepuesta en el pop up.
Para agregar el parametro
wmode directamente a nuestro html, con un editor de texto, escribiremos:
En una etiqueta OBJECT:
<param Name="
wmode" value="transparent">
En una etiqueta EMBED:
wmode="transparent"
wmode= "transparente"
Si quieres saber más sobre el parametro wmode
http://www.adobe.com/es/support/flash/ts/documents/wmode.htm IMPORTANTE:
Cuando tenemos iframes en nuestro sitio, las llamadas a los scripts y hojas de estilo de greybox:
<script type="text/javascript">
var GB_ROOT_DIR = "./greybox/";
</script>
<script type="text/javascript" src="greybox/AJS.js"></script>
<script type="text/javascript" src="greybox/AJS_fx.js"></script>
<script type="text/javascript" src="greybox/gb_scripts.js"></script>
<link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" media="all"/>
Se deberan incluir según las indicaciones de instalación de grey box, en la pagina padre unicamente, o sea, la pagina que contiene el iframe.