Answers:
将SWF嵌入HTML页面的最佳方法是使用SWFObject。
这是一个简单的开源JavaScript库,它是易于使用且符合标准的方法来嵌入Flash内容。
它还提供Flash Player版本检测。如果用户没有所需的Flash版本或禁用了JavaScript,则他们将看到替代内容。您还可以使用此库来触发Flash Player升级。用户升级后,他们将被重定向回页面。
文档中的示例:
<!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>
与此配合使用的一个很好的工具是SWFObject HTML和JavaScript 生成器。它基本上会生成使用SWFObject嵌入Flash所需的HTML和JavaScript。带有一个非常简单的UI,供您输入参数。
强烈建议您使用它,并且非常简单。
var el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);
<object width="100" height="100">
<param name="movie" value="file.swf">
<embed src="file.swf" width="100" height="100">
</embed>
</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>
应该/可以添加其他参数,具体取决于它自己的.swf。没有内嵌,仅包含对象和参数,因此,它在任何地方都保持有效,可工作和可用,与!DOCTYPE无关。:)
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/VhtIydTmOVU&hl=en&fs=1&color1=0xe1600f&color2=0xfebd01"
style="width:640px;height:480px;margin:10px 36px;">
<param name="movie" value="http://www.youtube.com/v/VhtIydTmOVU&hl=en&fs=1&color1=0xe1600f&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>
我使用http://wiltgen.net/objecty/,它有助于嵌入媒体内容并避免IE的“单击激活”问题。
什么是最好的方法?诸如“最高效”,“最快渲染”之类的词更为具体。无论如何,我提供的替代答案大部分时间对我有帮助(无论“最佳”与否无关紧要)。
替代答案:使用iframe。
也就是说,将SWF文件托管在服务器上。如果将SWF文件放在根目录或public_html文件夹中,则SWF文件将位于www.YourDomain.com/YourFlashFile.swf
。
然后,在index.html或任何位置上,将上述位置链接到iframe,无论将iframe放在哪里,它都会显示在您的内容周围。如果可以在其中放置iframe,则可以在其中放置SWF文件。使iframe尺寸与SWF文件相同。在下面的示例中,SWF文件为500 x 500。
伪代码:
<iframe src="//www.YourDomain.com/YourFlashFile.swf" width="500" height="500"></iframe>
上面的HTML代码行将嵌入您的SWF文件。无需其他混乱。优点:符合W3C,页面设计友好,没有速度问题,极简方法。
缺点:在浏览器中启动时,SWF文件周围的空白。
那是一个替代答案。是否是“最佳”答案取决于您的项目。
//www...
使用//
的手段,如果你对HTTPS或HTTP它的工作原理使用相同的连接类型
我知道这是一个老问题。但是这个答案对目前来说是好的。
<!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>
Thi适用于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>
这对我有用:
<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>
使用<embed>
元素:
<embed src="file.swf" width="854" height="480"></embed>
如果您熟悉,可以使用JavaScript,例如:
swfobject.embedSWF("filename.swf", "Title", "width", "height", "9.0.0");
-9.0.0是Flash版本。
或者,您可以使用<object>
HTML5标签。