【问题标题】:How to embed a SWF file in an HTML page?如何在 HTML 页面中嵌入 SWF 文件?
【发布时间】:2010-09-13 07:59:30
【问题描述】:

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

【问题讨论】:

    标签: html embed flash


    【解决方案1】:
    <object width="100" height="100">
        <param name="movie" value="file.swf">
        <embed src="file.swf" width="100" height="100">
        </embed>
    </object>
    

    【讨论】:

    【解决方案2】:

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

    与此一起使用的一个很好的工具是 SWFObject HTML 和 JavaScript generator。它基本上生成使用 SWFObject 嵌入 Flash 所需的 HTML 和 JavaScript。带有一个非常简单的用户界面供您输入参数。

    强烈推荐使用,非常简单。

    【讨论】:

    • SWFObject 很好。它很简单。一个更棒的想法是使用内容交付网络来获取 javascript。我使用谷歌的ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js
    • 我在 IE9 中直接使用对象标签时遇到了问题,但它与 swfobject 完美配合。
    • 感谢您的回答。现在,您能否建议一个播放器以及访问播放功能以及 html 本身的工作示例。 ??????
    • 这可以在没有安装 Flash Player 或支持所有浏览器的系统上工作吗?
    • 项目现已移至GitHub:github.com/swfobject/swfobject,嵌入swf对象的新技术为var el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);
    【解决方案3】:

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

    【讨论】:

    • “点击激活”问题被称为“eolas 激活”,但在 IE 的实际版本中被删除。
    【解决方案4】:

    如前所述,SWF 对象很棒。 UFO也值得一看

    【讨论】:

      【解决方案5】:

      如果您使用这些 js 库之一插入 Flash,我建议在 &lt;noscript/&gt; 内添加纯对象嵌入标签。

      【讨论】:

        【解决方案6】:
        <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>data和movie>value参数是一样的。此代码应适用于任何免费观看和分享 - youtube 视频。
        • 一般来说,最好让答案解释他们给出的代码,而不是仅仅将代码放在提问者身上。目标是了解问题并在未来预防它们,而不是让它们消失。
        【解决方案7】:

        这适合从根环境应用。

        <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。 没有嵌入,只有 object 和其中的参数,因此,它在任何地方都保持有效、工作和可用,无论 !DOCTYPE 是什么都无关紧要。 :)

        【讨论】:

          【解决方案8】:

          什么是“最好的”方式? “最有效”、“最快渲染”等词更具体。无论如何,我提供了一个在大多数情况下对我有帮助的替代答案(是否“最佳”无关紧要)。

          替代答案:使用 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 文件周围有空白。

          这是另一个答案。是否是“最佳”答案取决于您的项目。

          【讨论】:

          • for google @Stoic 抱歉你的错误应该是 //www... 使用 // 意味着如果你在 HTTPS 或 HTTP 上它可以使用相同的连接类型
          【解决方案9】:

          如果您熟悉 JavaScript,您可以使用 JavaScript,如下所示:

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

          --9.0.0是flash版本。

          或者你可以使用HTML5的&lt;object&gt;标签。

          【讨论】:

          • -1 swfobject 不仅仅是 JavaScript 的一部分,你不能在不嵌入库的情况下调用它。 标签的大部分功能已从 HTML 4 到 5 中删除。它仍然可以使用,但不推荐使用。总而言之,这是一个非常糟糕的答案。
          • 你在说它是一个非常糟糕的答案之前是否已经尝试过?请记住,非常糟糕的答案是不完全有效或错误的答案。
          • 您通知某人使用 javascript,然后使用您甚至没有提到的 javascript 库粘贴代码这一事实使得它成为一个糟糕的答案
          • 我已经提到使用 Javascript 并给出了脚本。如果我给出了整个工作代码/脚本来制作勺子。脚本很好,它只是一个逻辑。
          • 你误解了我的评论。您还没有告诉他包含 SWFObject Javascript 文件
          【解决方案10】:

          这对我有用:

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

          【讨论】:

            【解决方案11】:

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

            <!DOCTYPE html>
            <html>
            <body>
            
            <embed src="anim.swf">
            
            </body>
            </html>
            

            【讨论】:

              【解决方案12】:

              我相信这个会起作用的!

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

              【讨论】:

                【解决方案13】:

                我知道这是一个老问题。不过这个答案暂时还是有用的。

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

                【讨论】:

                  【解决方案14】:

                  这适用于 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>
                  

                  【讨论】:

                    【解决方案15】:

                    使用&lt;embed&gt; 元素:

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

                    【讨论】:

                      猜你喜欢
                      • 2012-04-14
                      • 2010-09-22
                      • 1970-01-01
                      • 2018-07-21
                      • 1970-01-01
                      • 2014-06-30
                      • 2011-08-08
                      • 2012-10-23
                      • 1970-01-01
                      相关资源
                      最近更新 更多