¿Cómo incrustar un archivo SWF en una página HTML?


¿Cómo incrustar un archivo SWF en una página HTML?

Author: Peter Mortensen, 2008-09-26

13 answers

El mejor enfoque para incrustar un SWF en una página HTML es usar SWFObject.

Es una biblioteca JavaScript de código abierto simple que es un método fácil de usar y amigable con los estándares para incrustar contenido Flash.

También ofrece detección de versiones de Flash Player. Si el usuario no tiene la versión de Flash requerida o tiene JavaScript deshabilitado, verá un contenido alternativo. También puede utilizar esta biblioteca para activar una actualización de Flash Player. Una vez que el usuario ha actualizado, será redirigido de nuevo a la página.

Un ejemplo de la documentación:

<!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>

Una buena herramienta para usar junto con esto es el generador SWFObject HTML y JavaScript . Básicamente genera el HTML y JavaScript que necesita para incrustar el Flash usando SWFObject. Viene con una interfaz de usuario muy simple para que ingrese sus parámetros.

Es muy recomendable y muy simple de usar.

 165
Author: Ronnie Liew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-26 13:45:03
<object width="100" height="100">
    <param name="movie" value="file.swf">
    <embed src="file.swf" width="100" height="100">
    </embed>
</object>
 119
Author: Ólafur Waage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-26 01:54:27

Esto es adecuado para la aplicación desde el entorno raíz.

<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>

Se deben agregar/se pueden agregar parámetros adicionales de los cuales depende .swf it self. No embed , solo object y parámetros dentro, por lo tanto, sigue siendo válido, funcionando y utilizable en todas partes, ¡no importa cuál !DOCTYPE es todo acerca. :)

 11
Author: Spooky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-11 19:57:38

¿Qué tal una simple incrustación de etiquetas HTML5?

<!DOCTYPE html>
<html>
<body>

<embed src="anim.swf">

</body>
</html>
 10
Author: Jan Desta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-22 22:13:49

Si está utilizando una de esas bibliotecas js para insertar Flash, le sugiero que agregue la etiqueta de inserción de objeto plano dentro de <noscript/>.

 7
Author: Brian Kim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-26 22:13:45
<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>
 7
Author: Spooky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-11 19:43:34

Utilizo http://wiltgen.net/objecty / , ayuda a incrustar contenido multimedia y evitar el IE "haga clic para activar" problema.

 2
Author: Eduardo Campañó,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-26 02:08:24

Como se mencionó, el objeto SWF es genial. OVNI también vale la pena echar un vistazo

 2
Author: phatduckk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-26 05:34:40

Este funcionará, estoy seguro!

<embed src="application.swf" quality="high" pluginspage="http://www.macromedia.com/go/getfashplayer" type="application/x-shockwave-flash" width="690" height="430">
 2
Author: Stefan Đorđević,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-26 13:48:41

¿Cuál es la "mejor" manera? Palabras como 'más eficiente', 'renderizado más rápido', etc. son más específicos. De todos modos, estoy ofreciendo una respuesta alternativa que me ayuda la mayor parte del tiempo (si es o no 'mejor' es irrelevante).

Respuesta alternativa: Utilice un iframe.

Es decir, alojar el archivo SWF en el servidor. Si coloca el archivo SWF en la carpeta root o public_html, el archivo SWF se ubicará en www.YourDomain.com/YourFlashFile.swf.

Entonces, en su índice.html o donde sea, enlace la ubicación anterior a su iframe y se mostrará alrededor de su contenido donde quiera que ponga su iframe. Si puede poner un iframe allí, puede poner un archivo SWF allí. Haga que las dimensiones del iframe sean las mismas que el archivo SWF. En el ejemplo siguiente, el archivo SWF es 500 por 500.

Pseudo código:

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

La línea de código HTML anterior incrustará su archivo SWF. No se necesita otro lío. Pros: Compatible con W3C, diseño de página amigable, sin problemas de velocidad, enfoque minimalista.
Contras: Espacio en blanco alrededor de tu archivo SWF cuando se inicia en un navegador.

Esa es una respuesta alternativa. Si es la "mejor" respuesta depende de su proyecto.

 1
Author: Syed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-26 13:48:09

Sé que esta es una vieja pregunta. Pero esta respuesta será buena para el presente.

<!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
Author: Isuru Dilshan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-21 16:15:16

Puede usar JavaScript si está familiarizado con, así:

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

{la 9.0.0 es la versión flash.

O puede usar la etiqueta <object> de HTML5.

 0
Author: Allan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-12 02:12:31

Esto funcionó para mí:

    <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
Author: gtb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-12 10:00:22