Internet explorer blocco

- Letture: 2.685

L’update per Internet Explorer 6 ha portato il blocco dei contenuti ActiveX, categoria di cui il flash player fa parte.

Se prima era possibile interagire immediatamente con un filmato Flash una volta visualizzato, ora è necessario un click “intermedio“.

In altre parole il filmato è comunque visualizzato, ma per cliccare su un puslante ad esempio, dobbiamo prima eseguire un click per attivare l’oggetto ActiveX.

È il browser stesso ad indicarlo con un bordo intorno al filmato e un tooltip che ci chiede di cliccare per attivare il contenuto.

Andiamo a inserire il flashobject.js nella pagina HTML tra <head> e </head>
Fate attenzione a inserire il percorso esatto del javascript a seconda di dove lo metterete

<script type="text/javascript" src="flashobject.js"></script>

Poi andiamo a inserire questo codice nel punto in cui vogliamo visualizzare l’oggetto Flash:
<div id="flashcontent">
<a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW" mce_href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW">scarica Flash Player</a>
</div>
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "300", "7", "#336699");
so.addParam("quality", "best");
so.addParam("wmode", "transparent");
so.addParam("salign", "t");
so.write("flashcontent");
</script>

  • Andiamo ad analizzare il codice:

Nel div con id flashcontent potremo inserire un elemento: testo, immagine, link ecc. alternativo, ovvero quando il player richiesto, non sarà rilevato, (in questo esempio player 7) inevece di far uscire la pagina bianca, scriverà il contenuto alternativo, di solito io inserisco un link alla pagina di Adobe al download dell’ultimo FlashPlayer disponibile.

<div id="flashcontent">
<a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW" mce_href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW">scarica Flash Player</a>
</div>

  • Ora andiamo a vedere la visualizzazione dell’oggetto flash

<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "300", "7", "#FFFFFF");
so.addParam("quality", "best");
so.addParam("wmode", "transparent");
so.addParam("salign", "t");
so.write("flashcontent");
</script>

Analizziamo la creazione dell’oggetto SWFObject in cui troviamo:

  • movie.swf: nome del file swf
  • mymovie: id del file swf
  • 200: larghezza in pixel
  • 300: lunghezza in pixel
  • 7: Player nessario per visualizzare il filmato
  • #FFFFFF: colore di sfondo del filamto

In questo esempio viene impostata la qualità a BEST, lo sfondo trasparent e l’allineamento a t

In caso voleste inserire più filmati con questo metodo, vi basterà cambiare o incrementare la varibile so (es. so2) e l’id del div flashcontent (es flashcontent2)

Scarica l’esempio

Stratega, Docente, Speaker con più di 12 anni di esperienza in strategie creative multicanale. Oggi sono Partner & Chief Innovation Officer di ThinkingHat, Innovation Studio specializzato in tecnologie emergenti per aziende e brand audaci.

21 Commenti

  1. ciao julius!
    ti seguo già da un po’ sul forum di html.it e mi sembra che tu ne sappia abbastanza!! quindi ti chiedo una mano in quanto sto sclerando per trovare un metodo che mi sblocchi questi xxxxx di activex.

    Secondo te ho sbagliato qlc? ti spiego cosa ho fatto…

    nella mia pagina html ho scritto:

    !DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

    business party – compleanno ile

    scarica Flash Player

    var so = new SWFObject(“gioco1.swf”, “mymovie”, “200”, “200”, “7”, “#336699”);
    so.addParam(“quality”, “best”);
    so.addParam(“wmode”, “transparent”);
    so.addParam(“salign”, “t”);
    so.write(“flashcontent”);

    e poi ho messo nella stessa cartella il file javascript che ho scaricato da te.

    Ma non funziona…:(

    secondo te come mai?

    grazie tante!! e a presto!

  2. Ciao Julius,
    ho inserito dei miei pulsanti flash in una pagina HTM con tre frame poi ho attivato il tuo preziosissimo blocco così non vedo piu’ quell’odiosissimo riquadro bianco. Il problema è che non riesco ad indirizzare il link del pulsante nel frame centrale (comunque in nessun frame tranne quello che contiene i pulsanti). Ho provato di tutto ma riesco solo ad aprire dei pop up o pagine completamente nuove. Mi aiuti?
    Grazie.

  3. Caro Julius,
    ci avevo già provato e comunque ci ho riprovato ancora (ho addirittura sostituito l’estensione htm con html) ma il risultato è sempre lo stesso si crea una finestra autonoma. Temo che la questione riguardi il tuo blocco che una volta inserito elimina l’istruzione del filmato flash dal listato html della pagina nel quale potevo inserire un comando “target” indicando il frame desiderato.
    Potresti fare qualche prova tu? Dove ti posso mandare il file di un pulsante flash?
    Ti ringrazio e scusa l’insistenza.

  4. Ciao Julius io ho un piccolo problemino e spero tu riesca a risolvermelo:

    – ho strutturato una pagina web in tre frame

    – il frame di destra contiene un un file swf che presenta dei link i quali link devono far comparire la pagina nel frame centrale. Al pulsante ho dato il seguente codice: on (release) {
    getURL(“x.html”, “main”);
    }

    Ma la pagina “x” me la apre come se avessi inserito il parametro _blank

    Tuttavia ho provato a creare dei collegamenti ipertestuali in html con front page con gli stessi parametri di collegamento con il risultati positivi. Ho dedotto quindi che è flash che non riesce ad indirizzarmi una pagina da un dato frame ad un altro specificato come target. Solo che il menu vorrei
    realizzarlo in flash: sapresti suggerirmi una soluzione? grazie mille

  5. Purtroppo l’indirizzamento da flash a frame ha qualche bug, infatti con Firefox funziona ma con IE6/7 le pagine vengono aperte in un’altra finestra.

    Ti potrei dire di provare a realizzare una struttura in modo tale che il tuo menu sia in una data posizione, tramite div.

  6. Ciao Julius ho provato questo sistema ma credo di non aver compreso a pieno come sfruttarlo.

    Il sito che stò costruendo è http://www.baroquelife.org l’ho fatto in php per gestire file esterni inhtml nei quali ho messo i filmati flash per il menu.

    Il filamto in alto il banner funziona anche se è modificata un poco la risoluzione, non so perchè, infatti è lo stesso file usato per questo altro banner http://www.baroque.it/barocco-rococo.php

    non capisco perchè si vedano in modo differente.

    Non sono riuscito però a far funzionare il sito con più file falsh in pagine html esterne che includo nella pagina php come i menù della sezione arte.

    come posso fare?

    grazie per la pazienza

    Stefano

  7. Cito da articolo sopra :)

    In caso voleste inserire più filmati con questo metodo, vi basterà cambiare o incrementare la varibile so (es. so2) e l’id del div flashcontent (es flashcontent2)

    se hai altri problemi dimmi pure

  8. Ciao Julius, ancora Matteo.
    Sto provando ad inserire in una pagina html la image_gallery.
    Seguo le istruzioni:

    dentro head , rinominando flashobject.js in mc_tween2.as
    poi inserisco l’object dove mi interessa rinominando il file movie.swf in image_gallery.swf
    tutti i file sono nella cartella dell’html
    Purtroppo non mi compare niente, solo la scritta per scaricare il flash player (che ho e aggiornato). Dove sbaglio?

    Grazie mille, Matteo

  9. Ciao Jiulius, come prima cosa ti faccio i miei complimenti per il blog e i tutorial, utilissimi, come seconda cosa anche io ho lo stesso problema di Matteo, non risesco ad inserire l’image_gallery all’interno di una pagina html; ho seguito tutti i passaggi, i path sono giusti, ma nulla, si blocca alla scritta “Loading XML”.

    Un’aiutino???!!!

    Grazie mille in anticipo….

  10. Matteo non ho capito perchè rinomini flashobject.js in mc_tween2.as o.O

    Se seguite le istruzioni di questo articolo non avrete nessun problema..

    Dichiarate flashobject.js nella pagina HTML e poi inserite lo script dove volete condifigurandolo

    Poi fate attenzione di caricare il tutto sul vostro spazio web

  11. Scusa, ma dalle tue istruzioni a me esce questo:

    Scarica Flash Player

    var so = new SWFObject(“C:\Documents and Settings\Administrator\Desktop\image_gallery\image_gallery.swf”, “mymovie”, “200”, “300”, “7”, “”);
    so.addParam(“quality”, “best”);
    so.addParam(“wmode”, “transparent”);
    so.addParam(“salign”, “t”);
    so.write(“flashcontent”);

    Ho tutto dentro una cartella “image_gallery” sul desktop; caricando la pagina su browser mi visualizza solo il link “scarica flash player”.
    Scusa l’assillo ma non capisco se sbaglio o se se sono proprio tonto!!

    grazie ancora.

  12. Scusa ho sbagliato inserendo il commento..(sbadatamente ho inserito il codice di tutta la pagina)!
    Se posso ti invio direttamente il codice sulla tua mail.

  13. Scrivi qui il link alla tua pagina con la galleria…

    PS: vedo gia un errore nella variabile SWFObject ovvero ce un percorso in LOCALE ti ricordo che quando carichi su un tuo spazio web devi riferire tutto da remoto e non da locale come è scritto li…

  14. Si ok..però siccome ancora nn devo inserirlo su una pagina web, volevo provarlo prima in locale, è per quello che ho messo quei percorsi, è possibile testarlo in locale su una pagina html in cui dentro metto solo quell’oggetto?..

    Forse ora sono stato un pò più chiaro!

  15. Antonello

    Ho un problema, faccio esattamente quello che dici tu,
    body {
    background-color: #000000;
    margin-left: 10px;
    margin-top: 10px;
    margin-right: 0px;
    margin-bottom: 0px;
    }
    –>

    scarica Flash Player

    var so = new SWFObject(“film01.swf”, “film01”, “378”, “575”, “8”, “#336699”);
    so.addParam(“quality”, “best”);
    so.addParam(“wmode”, “transparent”);
    so.addParam(“salign”, “t”);
    so.write(“flashcontent”);


    Ma il film1.swf non parte se non sblocco il popup in IE6 6.0.2900.2180… naturalmente in firefox funziona e cliccando pure… :(
    Aiuto!

  16. @m4atteo puoi testartlo anche in locale

    @Antonello a me con IE6 non ci sono problemi…anche se oramai molti sviluppatori stanno cercando di abbandonare la corretta visualizzazione su IE6 per farlo “morire”

  17. federico

    Caro Giuliano,
    Da vari giorni sto tentando di inserire un programmino con localConnection DIRETTAMENTE nella linea temporale senza usare le classi ma non ce la faccio .
    Mi puoi aiutare tu? Te ne sarei molto grato!
    Ti ringrazio in anticipo , Federico
    //FILE PER L’INVIO

    import flash.net.LocalConnection;
    var conn:LocalConnection;

    sendBtn.addEventListener(MouseEvent.CLICK, sendMessage);
    conn = new LocalConnection();
    function sendMessage(event:MouseEvent):void {
    conn.send(“myConnection”, “lcHandler”, message.text);
    }

    //FILE PER LA RICEZIONE

    import flash.net.*;
    //ALLA VAR myReceiver assegno la classe LocalConnection
    var myReceiver = new LocalConnection();
    //quando si verifica l’evento(ricezion del messaggio)viene attivata la funz
    //nel cui parametro è contenuto il messaggio
    function ricevi(){
    //il messaggio viene inserito nel campo di testo
    myDynamicText.text =myReceiver;
    };
    //stabilisco la connessione per ricevere un msg al quale assegno il nome
    //incomingMessage
    myReceiver.connect(“incomingMessage”);

  18. federico

    Caro Giuliano,
    Da vari giorni sto tentando di inserire un programmino con localConnection DIRETTAMENTE nella linea temporale senza usare le classi ma non ce la faccio .
    Mi puoi aiutare tu? Te ne sarei molto grato!
    Ti ringrazio in anticipo , Federico
    //FILE PER L’INVIO

    import flash.net.LocalConnection;
    var conn:LocalConnection;

    sendBtn.addEventListener(MouseEvent.CLICK, sendMessage);
    conn = new LocalConnection();
    function sendMessage(event:MouseEvent):void {
    conn.send(”myConnection”, “lcHandler”, message.text);
    }

    //FILE PER LA RICEZIONE

    import flash.net.*;
    //ALLA VAR myReceiver assegno la classe LocalConnection
    var myReceiver = new LocalConnection();
    //quando si verifica l’evento(ricezion del messaggio)viene attivata la funz
    //nel cui parametro è contenuto il messaggio
    function ricevi(){
    //il messaggio viene inserito nel campo di testo
    myDynamicText.text =myReceiver;
    };
    //stabilisco la connessione per ricevere un msg al quale assegno il nome
    //incomingMessage
    myReceiver.connect(”incomingMessage”);

Commenti