Ayuda - Búsqueda - Miembros - Calendario
Versión Completa: A Vueltas Con El Shadowbox (solucionado)
Swishmax.es. Foro de consulta en español > SwishMax > SwishMax 2
chakra
Hola a todos.

Ya se que está tratado en dos hilos, los cuales he visitado y releido, y aun así no he sido capaz de hacerlo funcionar.
Creo que he seguido los pasos al milimetro pero sigue sin funcionar.
Paso a paso:

- Me he bajado la última version del Shadowbox
- He creado un index.hml con el siguiente código:
CODE
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Prueba</title>
<style type="text/css">
body {background: #FFFFFF; margin: 0; padding: 0; width:100%; height:100%;text-align: center;}
div#boton {margin:0px auto 0 auto; width:0px;}
</style>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var params = {};
params.base=".";
params.allowFullScreen="true";
params.bgColor="#FFFFFF";
swfobject.embedSWF("boton.swf","boton","174","73","9.0.28.0", false, false, params);
</script>

<link href="shadowbox/shadowbox.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>

</head>

<body topmargin="0">
<p align="center">
<div id="boton"><font color="#000000">Necesitas flash para ver esto
</font>
</div></p>

<script type="text/javascript">
function openShadowbox(content, player, title){
Shadowbox.open({
content: content,
player: player,
title: title
});
}
</script>

</body>

</html>

- He subido al servidor una carpeta con todos los archivos del shadowbox y el swfobject a la raiz del sitio junto con el fichero swf adjunto al posteo.
- En el botón creado, he puesto la siguiente linea siguiento las indicaciónes de los posteos antes nombrados:
CODE
on (release) {
getURL("java script:openShadowbox('http://www.swishmax.es/foros/index.php?', 'player', 'Página Swishmax', '450', '600') ");
}

(no entiendo por que las etiquetas de código separan "javascript" pero en realidad esta junto.)

Debo de ententer que "player" es el contenedor de la pelicula, si no es así corregirme por favor.

Se supone que con los pasos anteriores deberia de funcionar ¿no? pues mi gozo en un pozo compañeros.
Lo se cancrexo, lo se... dame un pescozon entre oreja y oreja pero dime donde me equivoco por favor.

Un saludo.
dios_ohm
Hola Chakra, según mi parecer tienes 3 errores, a saber:

1) La estructura de archivos en el servidor y/o las rutas hacia los archivos de Shadowbox en el .html
2) El código del botón galeria
3) El archivo index.html

Correcciones:
1) Ver carpeta Para-subir-al-servidor en el archivo adjunto
2) Botón galeria
Prueba con éste código:
CÓDIGO
on (release) {
    javascript("openShadowbox('http://www.swishmax.es/foros/index.php?', 'iframe', 'Página de inicio de Swishmax.es - Foros', '450', '600') ");
}

3) Ver código de archivo index-corregido.html en el archivo adjunto.

En el adjunto no incluyo el .swi debido a que lo he exportado desde Swishmax 3 y no podrías abrirlo, lamentablemente mi Swishmax 2 de momento no está funcionando correctamente.

Espero haberte allanado el camino respecto a tus dudas para con Shadowbox, cualquier cosa nos comentas.

Para ver los archivos en funcionamiento: Clíck aquí (Enlace temporal)

Saludos!
cancrexo
Hola.
El player no es el contendor de la película, es el tipo de player que debe iniciar shadowbox (img, swf, html, etc). Deberías revisar la página del shadowbox porque ahí está bien explicado. Además en la llamada a la función openShadowbox pasas un total de 5 parámetros cuando esta solo espera 3. Si quieres pasar el ancho y el alto del SB, tendrás que leerlos también.
En principio y quitando el error del player, tan solo te falta inicializar el shadobox, cosa que no veo que hagas por ningún lado. Justo después de la carga de
CÓDIGO
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>

tienes que inicializar el objeto shadowbox y ya de paso puedes definir la función open que has colocado en el body del html (mal hecho wink.gif )
En resumen, la parte final del <head> yo lo dejaría asi:
CÓDIGO
<link href="shadowbox/shadowbox.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>
<script type="text/javascript">
<!-- Constructor del shadowbox -->

Shadowbox.init(
    {lang:'es', players:  ['img', 'html', 'iframe', 'qt', 'wmp', 'swf', 'flv'] }
    );

<!-- Función que llamas desde flash -->
function openShadowbox(content, player, title, ancho, alto ){
    Shadowbox.open({
    content: content,
    player: player,
    title: title,
    width:ancho,
    height:alto
    });
}
</script>
</head>

recordando lo que te dije antes sobre el player. En este caso, en el botón tendrías que poner:
CÓDIGO
on (release) {
getURL("java script:openShadowbox('http://www.swishmax.es/foros/index.php?', 'html', 'Página Swishmax', '450', '600') ");
}


Y salvo error tipográfico u omisión (esto va de memoria rolleyes.gif ) debería funcionarte.
Por otro lado te recuerdo que cuando trabajes con script, utilices el debugger del navegador para trazar los posibles errores y así tener una pista de por donde ir. En tu caso, si haces la prueba (antes de hacer las modificaciones que te indico) me apuesto una birra a que te arroja un error del tipo "Object Shadowbox doesn't exist" o algo así.

Salu2
chakra
Hola caballeros, buenas noches.
Tras comprobar que no dí ni una en el blanco sad.gif he decidido dedicarme a la calceta...

dios_ohm, gracias por el ejemplo y mostrarme el funcionamiento básico del shadow

Cancrexo, en efecto marcaba un error muy parecido al que nombras, pero.... aun con la corrección realizada, me parece que el swfobject no se lleva muy bien con el script del ShadoBox, ahora marca el siguiente error nada más cargar el index:
CÓDIGO
Detalles de error de página web

Agente de usuario: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.1; .NET CLR 3.0.4506.2152; .NET CLR 1.1.4322)
Fecha: Tue, 8 Jun 2010 23:11:05 UTC


Mensaje: 'script.parentNode' es nulo o no es un objeto
Línea: 34
Carácter: 713
Código: 0
URI: /shadowbox/shadowbox.js

Sin embargo, si cargo el swf del botón, con el cargador normal o sea como el que ha puesto dios_ohm, no marca ningun fallo.
En fin, valoraremos si no importa mucho que en IE nos marque el error y funcione o volver a la carga normal de los swf.
De todas las maneras, muchisimas gracias a los dos por vuestro tiempo y vuestros conocimientos.

Un saludo
dios_ohm
Hola Chakra, vamos hombre, a la calceta no que dicen que además de afinar la voz quiebra las muñecas biggrin.gif

La verdad que se me pasó lo de que utilizabas swfobject, aloja el swfobject.js en el mismo directorio del index.html y prueba con el código que te adjunto a ver si solucionas tu tema.

Para verlo en funcionamiento: Clíck aquí (Enlace temporal)

Saludos!
cancrexo
Hola.
El error que indicas creo que me suena. Creo recordar que se soluciona colocando el shadowbox antes que el swfobject o bien lanzado el swfobject al cargar la página (con un addDomLoadEvent por ejemplo)
Prueba a ver si te funciona así:
CÓDIGO
<link href="shadowbox/shadowbox.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>
<script type="text/javascript">
<!-- Constructor del shadowbox -->

Shadowbox.init(
    {lang:'es', players:  ['img', 'html', 'iframe', 'qt', 'wmp', 'swf', 'flv'] }
    );

<!-- Función que llamas desde flash -->
function openShadowbox(content, player, title, ancho, alto ){
    Shadowbox.open({
    content: content,
    player: player,
    title: title,
    width:ancho,
    height:alto
    });
}
</script>

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars = {};
var params = {base:".", allowFullScreen:true, bgColor:"#FFFFFF"};
swfobject.embedSWF("boton.swf","boton","174","73","9.0.0", false, flashvars, params);
</script>
</head>

y prueba. Si no va, intento mirarlo con calma y te digo algo. Pero debería rular.

Salu2
chakra
Gracias cancrexo pero esta vez no, no has acertado lo siento. No funciona.

En cuanto a dios_ohm, se que funciona por que has puesto un ejemplo, pero te prometo que a mi no hay manera de que me funcione. No se que es lo que hago mal ya que practicamente he copiado todo tu código a excepción de 2 o tres lineas y modificar los nombres. Pero por lo demas lo hago igual, y chico... no funciona.
Te todas maneras el código que más se aproxima al que tengo yo es el de cancrexo.

De nuevo, muchas gracias por vuestro tiempo.

Un saludo
dios_ohm
Hola Chakra, tal vez esas "2 o tres líneas" resulten la causa del fallo; lo único que no te he pasado es el .swi, aquí te adjunto un .rar con todos los archivos e incluyo un .swi hecho en Swishmax1 que es perfectamente editable en Swishmax2, si no dás en la tecla sube un comprimido con tus archivos tal cual la estructura que utilizas en el servidor así podemos ver en detalle lo que estás haciendo.

Para ver los archivos del adjunto en funcionamiento: Clíck aquí (Enlace temporal)

Saludos!
cancrexo
Joder. NO me había fijado.
En el html debes especificar SI o SI, el DocType para que el shadowbox funcione. Dejalo así:

CÓDIGO
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Prueba</title>
<style type="text/css">    
body {background: #FFFFFF; margin: 0; padding: 0; width:100%; height:100%;text-align: center;}
div#boton {margin:0px auto 0 auto; border:1px solid}
</style>
<link href="shadowbox/shadowbox.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>
<script type="text/javascript">
<!-- Constructor del shadowbox -->

Shadowbox.init(
    {lang:'es', players:  ['img', 'html', 'iframe', 'qt', 'wmp', 'swf', 'flv'] }
    );

<!-- Función que llamas desde flash -->
function openShadowbox(content, player, title, ancho, alto ){
    Shadowbox.open({
    content: content,
    player: player,
    title: title,
    width:ancho,
    height:alto
    });
}
</script>

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars = {};
var params = {base:".", allowFullScreen:true, bgColor:"#FFFFFF"};
swfobject.embedSWF("boton.swf","flash","174","73","9.0.0", false, flashvars, params);
</script>
</head>

<body>
<div id="boton"><div id="flash">Necesitas flash para ver esto</div></div>



</body>

</html>


y eso tiene que funcionar. Asegurate de utilizar las últimas versiones del swfO y del SB

Salu2

PD: Si no te funciona (nunca se sabe) empaqueta tus archivos conservando la estructura del sitio, y adjuntanlo a un mensaje. Si te digo que funciona es porque lo he combinado con flash sin problemas en varios proyectos: www.servinauta.com, www.audiovisualesmcn.com o www.ritapajarita.com por ejemplo. Y como podrás ver, funcionan smilies (4).gif
chakra
Hola de nuevo, perdonar por la tardanza en contestar pero estuve bastante liado y no pude probar las soluciones que me habéis proporcionado. A ver, cancrexo, he utilizado tu código de HTML y nada, no hay manera.
Os adjunto la estructura de como va a funcionar el script dichoso. Un principal con varias escenas, en una de ellas, en este caso la 2 tiene el botón famoso.
Este botón es el que tiene que abrir el shadobox y no lo hace. Lo que quiero que habrá es un swf, cosa por otra parte secundaria ya que debería de abrir cualquiera de los formatos admitidos. De todas maneras también lo adjunto.
No tengo ni idea de donde pueda estar el fallo, a si que por favor corregirme y decirme donde me equivoque para poder aprender de mis errores.

Un saludo.

PD: Por cierto, me ha encantado el efecto de "llenado" de las letras en el preloader de ritapajarita. Ya nos contarás como se hace... ¿no?
cancrexo
Amigo chakra.

He descargado tu .rar, lo he descomprimido y he abierto el index.htm. He pulsado el botón 2 y después el botón que pone galería. Y se ha bieto un shadowbox con el archivo galería.swf. Osease: que funciona.
Probado en Chrome e IE8.

Salu2

chakra
Amigo cancrexo, se que funciona, lo se.
Pero sigue dando el error que comente en un posteo anterior, por supuesto en IE8.

CODE
Detalles de error de página web

Agente de usuario: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.1; .NET CLR 3.0.4506.2152; .NET CLR 1.1.4322)
Fecha: Tue, 15 Jun 2010 22:28:06 UTC

Mensaje: 'script.parentNode' es nulo o no es un objeto
Línea: 34
Carácter: 713
Código: 0
URI: http://www.miweb.com/shadowbox/shadowbox.js


A esto me referia que daba un fallo en el script, con vuestras indicaciones consegui hacerlo funcionar pero con esta pequeña "pega".
De ahi mi anterior pregunta, si teniais idea de que puede provocar este fallo.

Gracias de nuevo.
cancrexo
Hola.
Ese error ya se ha reportado en el foro de Shadowbox (hace cosa de un año) y no se ha respondido. Digamos que se puede pasar de el.

Salu2
chakra
Pues nada cancrexo, gracias por la solución ofrecida y modifico el titulo.

Un saludo.
timz
Hola,

Una pregunta, y en macromedia flash como seria?

Si en Swishmax es

CÓDIGO
on (release) {
getURL("java script:openShadowbox('http://www.swishmax.es/foros/index.php?', 'html', 'Página Swishmax', '450', '600') ");
}



Como seria en MACROMEDIA FLASH????

CÓDIGO
on (release) {
getURL(" ");
}
cancrexo
igual.

Salu2
Esta es una versión "reducida (lo-fi)" de nuestro contenido. Para ver la versión completa con mas información, formato e imágenes, por favor haz click aquí.
Invision Power Board © 2001-2012 Invision Power Services, Inc.