如何在 HTML 页面中嵌入 SWF 文件?

如何在 HTML 页面中嵌入 SWF 文件?

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

将 SWF 嵌入 HTML 页面的最佳方法是使用 SWFObject

它是一个简单的开源 JavaScript 库,易于使用和标准友好的方法来嵌入 Flash 内容。

它还提供 Flash 播放器版本检测。如果用户没有所需的 Flash 版本或者禁用了 JavaScript,他们将看到一个替代内容。您还可以使用此库来触发 Flash 播放器升级。用户升级后,它们将被重定向回页面。

文档中的一个例子:

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

与此一起使用的一个很好的工具是 SWFObjectHTML 和 JavaScript发电机。它基本上生成了使用 SWFObject 嵌入 Flash 所需的 HTML 和 JavaScript。附带一个非常简单的用户界面,用于输入参数。

这是强烈推荐和非常简单的使用。

我使用 http://wiltgen.net/objecty/,它有助于嵌入媒体内容,并避免 IE“点击激活”的问题。

正如前面提到的 SWF 对象很棒。 UFO也值得一看

如果您使用其中一个 js 库来插入 Flash,我建议在 <noscript/>中添加纯对象嵌入标记。

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

这适合于来自根环境的应用程序。

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

应该/可以添加其他参数,这取决于。自己动手。没有嵌入,只有 对象和参数内,所以,它仍然有效,工作和可用的任何地方,它没有关系!DOCTYPE 就是。:)

最好的方法是什么?“最高效”、“最快渲染”等词语更具体。无论如何,我提供了一个替代的答案,帮助我的大部分时间(是否是“最好的”是无关紧要的)。

备选答案: 使用 iframe。

也就是说,在服务器上承载 SWF 文件。如果您将 SWF 文件放在 root 或 public _ html 文件夹中,那么 SWF 文件将位于 www.YourDomain.com/YourFlashFile.swf

然后,在 index.html 或其他地方,将上面的位置链接到您的 iframe,它将显示在您放置 iframe 的内容周围。如果你可以把一个 iframe 放在那里,你可以把一个 SWF 文件放在那里。使 iframe 的尺寸与 SWF 文件相同。在下面的示例中,SWF 文件是500乘500。

伪代码:

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

上面的 HTML 代码行将嵌入您的 SWF 文件。不需要其他乱七八糟的东西。 优点: W3C 兼容,页面设计友好,无速度问题,最低限度的方法。
缺点: 当在浏览器中启动时,SWF 文件周围有空白。

这是一个替代的答案。是否是“最好的”答案取决于你的项目。

如果你熟悉的话,你可以使用 JavaScript,像这样:

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

9.0版本是 flash 版本。

或者您可以使用 HTML5的 <object>标记。

这对我很有效:

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

简单的 HTML5标签嵌入怎么样?

<!DOCTYPE html>
<html>
<body>


<embed src="anim.swf">


</body>
</html>

这个肯定能行!

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

我知道这是一个古老的问题,但是这个答案对现在来说是有好处的。

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

它适用于 IE,Edge,Firefox,Safari 和 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>

使用 <embed>元素:

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