Pregunta

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

¿Fue útil?

Solución

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 usar esta biblioteca para activar una actualización de Flash Player. Una vez que el usuario se haya actualizado, será redirigido 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 SWFObject HTML y JavaScript generador . 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 fácil de usar.

Otros consejos

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

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

<!DOCTYPE html>
<html>
<body>

<embed src="anim.swf">

</body>
</html>

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>

Deben agregarse / pueden agregarse parámetros adicionales que dependen de .swf. Sin incrustación , solo objeto y parámetros dentro, por lo que sigue siendo válido, funciona y se puede usar en todas partes, ¡no importa de qué se trate DOCTYPE! :)

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

Si está utilizando una de esas bibliotecas js para insertar Flash, sugiero agregar una etiqueta de incrustación de objetos simples dentro de <noscript/>.

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

Como se mencionó SWF Object es genial. UFO también vale la pena echarle un vistazo

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

¿Cuál es la "mejor" forma? Palabras como "más eficiente", "representación más rápida", etc. son más específicas. De todos modos, estoy ofreciendo una respuesta alternativa que me ayuda la mayor parte del tiempo (si "lo mejor" es irrelevante).

Respuesta alternativa: Use un iframe.

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

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

Pseudocó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 desastre. Pros: Cumple con W3C, diseño de página amigable, sin problemas de velocidad, enfoque minimalista.
Contras: Espacio en blanco alrededor de su archivo SWF cuando se inicia en un navegador.

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

Sé que esta es una vieja pregunta. Pero esta respuesta será buena por el 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>

Puede usar JavaScript si está familiarizado, por ejemplo:

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

--the 9.0.0 es la versión flash.

O puede usar la etiqueta <object> de HTML5.

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>

Thi funciona en IE, Edge, Firefox, Safari y 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top