buondì,
avevo bisogno di creare una pagina in cui inserire una sorta di gallery di filmati flash (a loro volta gallerie che visualizzano una serie di immagini di un negozio), con una navigazione sotto in modo che se uno avesse voluto passare da un flash all'altro non avrebbe fatto altro che cliccare su un numerino e via.
ed eccola qua: http://www.interno-8.it/gallery.html
ho utilizzato jquery per gestire la navigazione tra gli swf.
il problema è che sta cosa funziona su tutti i browser che ho provato (Chrome, Firefox, Opera, Safari..) ma non su IE.
su Internet Explorer (qualsiasi versione credo, anche la 9) la prima galleria flash viene caricata, ma quando clicco sul 2 non mi carica l'altra. fa il fade ma rientra ancora lo stesso flash.
il jquery che ho utilizzato è questo:
codice:
<script type="text/javascript">
//<![CDATA[
$(function(){
$("#supersized").hide();
if ((screen.width>=1600)) { var fObj = "flash_all_resolution_alta2.swf" }
else { var fObj = "flash_all_resolution2.swf" }
var gallery = $("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width=\"100%\" height=\"100%\" align=\"top\"><param name=\"movie\" value=\"" + fObj + "\"><param name=\"allowFullScreen\" value=\"true\"><param name=\"quality\" value=\"high\"><param name=\"wmode\" value=\"opaque\"><embed src=\"" + fObj + "\" quality=\"high\" wmode=\"transparent\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"100%\" height=\"100%\" align=\"middle\"></embed></object>");
gallery.appendTo("#supersized");
$(window).bind("load", function(){
$('#loading').hide();
$('#supersized').fadeIn(2000);
});
$(".galleries a").click(function(){
var ngal = $(this).attr("id");
$('#supersized').fadeOut('slow', function() {
if (ngal == "one") {
if ((screen.width>=1600)) { fObj = "flash_all_resolution_alta2.swf" }
else { fObj = "flash_all_resolution2.swf" }
}
if (ngal == "two") {
if ((screen.width>=1600)) { fObj = "flash_all_resolution_alta.swf" }
else { fObj = "flash_all_resolution.swf" }
}
$("#supersized object param:eq(0)").attr("value",fObj);
$("#supersized embed").attr("src", fObj);
$('#supersized').fadeIn('slow');
});
return false;
});
});
//]]>
</script>
mentre il contenuto html più sotto è più o meno così (tralasciando parti non inerenti):
codice:
<body>
<div id="content">
<div id="loading"></div>
<div id="container">
...
<p class="galleries">> Gallery 2011 1 2</p>
...
</div>
<div id="supersized"></div>
</div>
</body>
tralasciando la parte relativa al diverso file caricato a seconda della risoluzione, in sostanza appendo al div supersized il codice per incorporare il filmato e sostituisco a seconda dell'elemento cliccato (qui "1" o "2") il percorso del file .swf.
perché IE rompe le palle?