PDA

Visualizza la versione completa : Swf vs. Litebox/Lightbox


maspar
01-09-2006, 19:11
Ciao ragazzi, non mia intenzione fare crossposting visto che avevo affrontato questa discussione in questo 3d (http://forum.html.it/forum/showthread.php?s=&threadid=1022495) (non aperto dal sottoscritto, e dal titolo non proprio chiaro) ma visto considerato che a parte un utente nessuno riuscito a darmi qualche dritta, pensavo che magari in questo forum (pi consono, visto che parliamo di js) qualcuno di voi riesce a risolvere l'inghippo :D
Il litebox su una semplice pagina html funziona benissimo quindi ho voluto complicarmi la vita sostituendo le varie thumb con un file in flash quindi un swf.

In questo link (http://www.brainstorms.it/galleria/gallery_flash.html) potete vedere cosa succede... :dh:
Sto usando Litebox 1.0.

Fatta la premessa inizio a postare il codice:

Questa la pagina html (gallery_flash.html)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen">
<script type="text/javascript" src="js/prototype.lite.js"></script>
<script type="text/javascript" src="js/moo.fx.js"></script>
<script type="text/javascript" src="js/litebox-1.0.js"></script>

<script type="text/javascript">
function show(url) {
var a = document.getElementById('ancoraggio');
a.setAttribute('href',url);
myLightbox.start(a);
}
</script>

<title>Swf vs Litebox</title>
</head>
<body onload="initLightbox()">






<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">
[/url]
(images/mare(1).JPG)

[url="images/mare(4).JPG"] (images/mare(3).JPG)
<object type="application/x-shockwave-flash" data="thumb2.swf" wmode="transparent" width="850" height="150">
<param name="movie" value="thumb2.swf">
<param name="quality" value="high">
<param name="wmode" value="transparent">
</object>
</div></td>
</tr>
</table>
</body>
</html>


Nel pulsante in flash ho inserito questo:


on (press) {
getURL("javascript:show('images/mare(1).jpg')");
}


Come potete vedere se inizio a cliccare sulla prima foto (la prima da sinistra) tutto funge correttamente, se invece inizio con l'aprire un foto diversa dalla prima mi sballa lo script, infatti mi apre la foto corretta ma me la chiama sempre con il nome della prima.

Dategli un occhiata please! :ciauz:

Grazie

maspar
04-09-2006, 10:13
Up :dh:

maspar
04-09-2006, 19:35
Ragazzi sono riuscito finalmente a farlo funzionare :unz: , il problema infatti era nella funzione js che chiamava la foto cio questa:


function show(url) {
var a = document.getElementById('ancoraggio1');
a.setAttribute('href',url);
myLightbox.start(a);
}


Ho trovato una soluzione funzionale ma stilisticamente orrenda :nonono:

Ho infatti duplicato tante funzioni quante sono le foto (assurdo vero? :dh: ) le ho richiamate ad una ad una dai rispettivi pulsanti in flash.

Vi allego il codice

HTML


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen">
<script type="text/javascript" src="js/prototype.lite.js"></script>
<script type="text/javascript" src="js/moo.fx.js"></script>
<script type="text/javascript" src="js/litebox-1.0.js"></script>
<script type="text/javascript">

function show1(url) {
var a = document.getElementById('ancoraggio1');
a.setAttribute('href',url);
myLightbox.start(a);
}

function show2(url) {
var a = document.getElementById('ancoraggio2');
a.setAttribute('href',url);
myLightbox.start(a);
}

function show3(url) {
var a = document.getElementById('ancoraggio3');
a.setAttribute('href',url);
myLightbox.start(a);
}

function show4(url) {
var a = document.getElementById('ancoraggio4');
a.setAttribute('href',url);
myLightbox.start(a);
}
</script>
<title>Swf vs Litebox</title>
</head>
<body onload="initLightbox()">






<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">
[/url]
(images/mare(1).JPG)

[url="images/mare(4).JPG"] (images/mare(3).JPG)
<object type="application/x-shockwave-flash" data="thumb2.swf" wmode="transparent" width="850" height="150">
<param name="movie" value="thumb2.swf">
<param name="quality" value="high">
<param name="wmode" value="transparent">
</object>
</div></td>
</tr>
</table>
</body>
</html>


Flash:


on (press) {
// Pulsante 1
getURL("java-script:show1('images/mare(1).jpg')");
}

on (press) {
// Pulsante 2
getURL("java-script:show2('images/mare(1).jpg')");
}


on (press) {
// Pulsante 3
getURL("java-script:show3('images/mare(1).jpg')");
}


on (press) {
// Pulsante 4
getURL("java-script:show4('images/mare(1).jpg')");
}


Dovrei quindi realizzare un unica funzione che si comporti come le quattro.
Non penso sia qualcosa di impossibile, ma io non ci capisco molto di js.
Qualcuno pu aiutarmi?

Questo il link dove potete vedere l'esempio funzionante: link (http://www.brainstorms.it/galleria/gallery_flash.html)

Grazie! :ciauz:

cavicchiandrea
04-09-2006, 23:45
prova una soluzione del genere, non l'ho testato potrebbe non funzioanre il talcaso riporta l'eventuale errore

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen">
<script type="text/javascript" src="js/prototype.lite.js"></script>
<script type="text/javascript" src="js/moo.fx.js"></script>
<script type="text/javascript" src="js/litebox-1.0.js"></script>
<script type="text/javascript">

function show(image) {
var a = document.getElementById('ancoraggio"+image+"');
var f = new Array()
f[1] = "images/mare(1).JPG";
f[2] = "images/mare(2).JPG";
f[3] = "images/mare(3).JPG";
f[4] = "images/mare(4).JPG";
a.setAttribute('href',f[image]);
myLightbox.start(a);
}

</script>
<title>Swf vs Litebox</title>
</head>
<body onload="initLightbox()">






<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">
[/url]
(images/mare(1).JPG)

[url="images/mare(4).JPG"] (images/mare(3).JPG)
<object type="application/x-shockwave-flash" data="thumb2.swf" wmode="transparent" width="850" height="150">
<param name="movie" value="thumb2.swf">
<param name="quality" value="high">
<param name="wmode" value="transparent">
</object>
</div></td>
</tr>
</table>
</body>
</html>

flash

on (press) {
// Pulsante 1
getURL("java-script:show(1)");
}

on (press) {
// Pulsante 2
getURL("java-script:show(2)");
}


on (press) {
// Pulsante 3
getURL("java-script:show(3)");
}


on (press) {
// Pulsante 4
getURL("java-script:show(4)");
}
:ciauz:

maspar
05-09-2006, 01:38
Grazie per avermi risposto Cavicchia ma purtroppo non funge :dh:
Mi da errore nella riga 20 cio questa:


a.setAttribute('href', f[image]);


Puoi vedere cmq il risultato online qu (http://www.brainstorms.it/galleria/gallery_flash.html) :cry:


:ciauz:

cavicchiandrea
05-09-2006, 09:00
Originariamente inviato da maspar
Grazie per avermi risposto Cavicchia ma purtroppo non funge :dh:
Mi da errore nella riga 20 cio questa:


a.setAttribute('href', f[image]);


Puoi vedere cmq il risultato online qu (http://www.brainstorms.it/galleria/gallery_flash.html) :cry:


:ciauz:
Prova cosi:

a.setAttribute('href', '"+f[image]+"');
Ora sono in ufficio e non vedo neanche la pagina (plag-in vecchio di flash non posso aggiornalo)
C' la specifica dell'errore? Oggi quando torno a casa se non hai risolto con questa modifica ci do un occhio.
:ciauz:

maspar
05-09-2006, 09:09
Originariamente inviato da cavicchiandrea
Prova cosi:

a.setAttribute('href', '"+f[image]+"');
Ora sono in ufficio e non vedo neanche la pagina (plag-in vecchio di flash non posso aggiornalo)
C' la specifica dell'errore? Oggi quando torno a casa se non hai risolto con questa modifica ci do un occhio.
:ciauz:

Purtroppo non va :dh:

L'errore questo:

Riga: 20
Carattere: 1
Errore: 'null' nullo ho non un oggetto
Codice: 0
Url: http://www.brainstorms.it/galleria/gallery_flash.html


Grazie per la tua disponibilit!
Cmq fra un p metter on-line una versione con player + vecchia!

:ciauz:

maspar
05-09-2006, 10:33
La versione on-line pubblicata con la versione 6 del player.

:ciauz:

cavicchiandrea
05-09-2006, 10:57
Originariamente inviato da maspar
La versione on-line pubblicata con la versione 6 del player.

:ciauz:

Ora lo vedo si deve andare a tentativi prova cosi:
function show(image) {alert(image)
var a = document.getElementById('ancoraggio"+image+"');
var f = new Array()
f[1] = "images/mare(1).JPG";
f[2] = "images/mare(2).JPG";
f[3] = "images/mare(3).JPG";
f[4] = "images/mare(4).JPG";
a.setAttribute('href',f[image]);
myLightbox.start(a);
}

ho aggiunto un alert per vedere se passa il valore.
:ciauz:

maspar
05-09-2006, 11:00
Originariamente inviato da cavicchiandrea
Ora lo vedo si deve andare a tentativi prova cosi:
function show(image) {alert(image)
var a = document.getElementById('ancoraggio"+image+"');
var f = new Array()
f[1] = "images/mare(1).JPG";
f[2] = "images/mare(2).JPG";
f[3] = "images/mare(3).JPG";
f[4] = "images/mare(4).JPG";
a.setAttribute('href',f[image]);
myLightbox.start(a);
}

ho aggiunto un alert per vedere se passa il valore.
:ciauz:

Dove lo dovrei inserire? :stordita:

Loading