Come incorporare un file SWF in una pagina HTML?


Risposte:


174

L'approccio migliore per incorporare un file SWF in una pagina HTML è utilizzare SWFObject .

È una semplice libreria JavaScript open source che è un metodo facile da usare e conforme agli standard per incorporare il contenuto Flash.

Offre anche il rilevamento della versione di Flash Player. Se l'utente non ha la versione di Flash richiesta o JavaScript è disabilitato, vedrà un contenuto alternativo. Puoi anche utilizzare questa libreria per attivare un aggiornamento di Flash Player. Una volta eseguito l'aggiornamento, l'utente verrà reindirizzato alla pagina.

Un esempio dalla documentazione:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>SWFObject dynamic embed - step 3</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript" src="swfobject.js"></script>

    <script type="text/javascript">
        swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
    </script>

  </head>
  <body>
    <div id="myContent">
      <p>Alternative content</p>
    </div>
  </body>
</html>

Un buon strumento da utilizzare insieme a questo è il generatore HTML e JavaScript di SWFObject . Generalmente genera l'HTML e JavaScript necessari per incorporare Flash usando SWFObject. Viene fornito con un'interfaccia utente molto semplice per inserire i parametri.

È altamente raccomandato e molto semplice da usare.


11
SWFObject è buono. Funziona semplicemente. Un'idea ancora più meravigliosa è quella di utilizzare una rete di distribuzione di contenuti per ottenere il javascript. Uso Google ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js
Ardee Aram

Ho avuto problemi con l'utilizzo del tag oggetto direttamente con IE9 ma funziona perfettamente con swfobject.
AndyMcKenna,

Grazie per la tua risposta. Ora puoi suggerire un lettore anche per accedere alla capacità di riproduzione insieme con un esempio funzionante in HTML stesso. ????
Sumit Ramteke,

Può funzionare su quel sistema in cui Flash Player non è installato o supporta tutti i browser.
Mohammed Javed,

Il progetto è ora spostato su GitHub: github.com/swfobject/swfobject e la nuova tecnica per incorporare l'oggetto swf èvar el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);
Lucky

127
<object width="100" height="100">
    <param name="movie" value="file.swf">
    <embed src="file.swf" width="100" height="100">
    </embed>
</object>

1
Quel codice non è XHTML valido ... <embed> non deve essere all'interno di un tag oggetto.
Anheledir,

59
Nessuna specifica dell'utente per essere valida XHTML, ha chiesto HTML
Ólafur Waage,

3
questo articolo ha una buona spiegazione sull'incorporamento di flash e XHTML validi yoast.com/articles/valid-flash-embedding
Joko Wandiro

3
perché non usare l' dataattributo nell'elemento <object> ? Citazione dai documenti html5 di w3c: deve essere presente almeno uno degli attributi dati o l'attributo type .
Vladkras,

@JokoWandiro il link fornito è purtroppo scomparso. Ecco una versione archiviata: web.archive.org/web/20180602024700/https://yoast.com/…
Hermann.Gruber,

17

Che ne dici di un semplice tag HTML5 incorporato?

<!DOCTYPE html>
<html>
<body>

<embed src="anim.swf">

</body>
</html>

13

Questo è adatto per l'applicazione dall'ambiente root.

<object type="application/x-shockwave-flash" data="/dir/application.swf" 
id="applicationID" style="margin:0 10px;width:auto;height:auto;">

<param name="movie" value="/dir/application.swf" />
<param name="wmode" value="transparent" /> <!-- Or opaque, etc. -->

<!-- ↓ Required paramter or not, depends on application -->
<param name="FlashVars" value="" />

<param name="quality" value="high" />
<param name="menu" value="false" />

</object>

È possibile aggiungere / aggiungere parametri aggiuntivi che dipendono da .swf stesso. Nessun incorporamento , solo oggetto e parametri all'interno, quindi rimane valido, funzionante e utilizzabile ovunque, non importa in che cosa sia! DOCTYPE. :)


8
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" 
style="width:640px;height:480px;margin:10px 36px;">

<param name="movie" value="http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="wmode" value="opaque" />
<param name="quality" value="high" />
<param name="menu" value="false" />

</object>

2
Si noti che i parametri oggetto> dati e film> sono gli stessi. Questo codice dovrebbe funzionare per qualsiasi video gratuito da guardare e condividere - youtube.
Spooky

3
In generale, è auspicabile che le risposte spieghino il codice che danno, piuttosto che far cadere il codice sull'asker. L'obiettivo è conoscere i problemi e prevenirli in futuro piuttosto che farli sparire.
KRyan,

7

Se stai usando una di quelle librerie js per inserire Flash, ti suggerisco di aggiungere un tag di incorporamento di oggetti semplici all'interno di <noscript/>.




2

Questo funzionerà, ne sono sicuro!

<embed src="application.swf" quality="high" pluginspage="http://www.macromedia.com/go/getfashplayer" type="application/x-shockwave-flash" width="690" height="430">

1

Qual è il modo migliore? Parole come "più efficiente", "rendering più veloce" e così via sono più specifiche. Ad ogni modo, sto offrendo una risposta alternativa che mi aiuta nella maggior parte dei casi (se il "migliore" è o meno irrilevante).

Risposta alternativa: utilizzare un iframe.

Cioè, ospitare il file SWF sul server. Se si inserisce il file SWF nella cartella root o public_html, il file SWF si troverà in www.YourDomain.com/YourFlashFile.swf.

Quindi, sul tuo index.html o ovunque, collega la posizione sopra al tuo iframe e verrà visualizzata intorno ai tuoi contenuti ovunque metti il ​​tuo iframe. Se puoi inserire un iframe lì, puoi inserire un file SWF lì. Rendi le dimensioni dell'iframe le stesse del tuo file SWF. Nell'esempio seguente, il file SWF è 500 per 500.

Pseudo codice:

<iframe src="//www.YourDomain.com/YourFlashFile.swf" width="500" height="500"></iframe>

La riga di codice HTML sopra incorporerà il tuo file SWF. Nessun altro pasticcio necessario. Pro: conforme al W3C, design della pagina intuitivo, nessun problema di velocità, approccio minimalista.
Contro: spazio bianco attorno al file SWF quando viene avviato in un browser.

Questa è una risposta alternativa. Se è la risposta "migliore" dipende dal tuo progetto.


3
per google @Stoic mi dispiace che tu abbia sbagliato che dovrebbe //www...usare //significa che se sei su HTTPS o HTTP funziona con lo stesso tipo di connessione
Barkermn01

1

So che questa è una vecchia domanda. Ma questa risposta andrà bene per il momento.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>histo2</title>
        <style type="text/css" media="screen">
        html, body { height:100%; background-color: #ffff99;}
        body { margin:0; padding:0; overflow:hidden; }
        #flashContent { width:100%; height:100%; }
        </style>
    </head>
    <body>
        <div id="flashContent">
            <object type="application/x-shockwave-flash" data="histo2.swf" width="822" height="550" id="histo2" style="float: none; vertical-align:middle">
                <param name="movie" value="histo2.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffff99" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="window" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
                <a href="http://www.adobe.com/go/getflash">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                </a>
            </object>
        </div>
    </body>
</html>

1

Funziona su IE, Edge, Firefox, Safari e Chrome.

<object type="application/x-shockwave-flash" data="movie.swf" width="720" height="480">
            <param name="movie" value="movie.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#000000" />
            <param name="play" value="true" />
            <param name="loop" value="true" />
            <param name="wmode" value="window" />
            <param name="scale" value="showall" />
            <param name="menu" value="true" />
            <param name="devicefont" value="false" />
            <param name="salign" value="" />
            <param name="allowScriptAccess" value="sameDomain" />
            <a href="http://www.adobe.com/go/getflash">
                <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
            </a>
        </object>

0

Questo ha funzionato per me:

    <a target="_blank" href="{{ entity.link }}">
        <object type="application/x-shockwave-flash" data="{{ entity.file.path }}?clickTAG={{ entity.link }}" width="120" height="600" style="visibility: visible;">
            <param name="quality" value="high">
            <param name="play" value="true">
            <param name="LOOP" value="false">
            <param name="wmode" value="transparent">
            <param name="allowScriptAccess" value="true">
        </object>
    </a>

0

Usa l' <embed>elemento:

<embed src="file.swf" width="854" height="480"></embed>

-1

Puoi usare JavaScript se hai familiarità, in questo modo:

swfobject.embedSWF("filename.swf", "Title", "width", "height", "9.0.0");

--la 9.0.0 è la versione flash.

Oppure puoi usare il <object>tag di HTML5.


-1 swfobject non è solo una parte di JavaScript, non puoi semplicemente chiamarlo senza incorporare la libreria. e la maggior parte delle funzionalità per il tag <object> è stata rimossa da HTML 4 a 5. Può ancora essere utilizzata, ma non consigliata. Tutto sommato una pessima risposta.
rorypicko,

l'hai già provato prima di dire che è una pessima risposta? tieni presente che la pessima risposta, è la risposta che non funziona completamente o sbagliata.
Allan,

il fatto che stai informando qualcuno di utilizzare javascript e quindi incollando il codice utilizzando una libreria javascript che non hai nemmeno menzionato rende una cattiva risposta
rorypicko

Ho già menzionato l'uso di Javascript e fornito lo script. Se ho dato l'intero codice / script funzionante che fa un cucchiaio. Lo script va bene è solo una logica.
Allan,

Stai fraintendendo il mio commento. Non gli hai detto di includere il file Javascript SWFObject
rorypicko
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.