【问题标题】:Trouble embedding flash in HTML using object tag/swfobject使用对象标记/swfobject 在 HTML 中嵌入 Flash 时遇到问题
【发布时间】:2023-03-14 20:49:01
【问题描述】:

我正在努力将我拥有的 Flash 文件嵌入到页面中,并尝试了以下两种方式的多种变体:

swfobject

<head>
  <%= javascript_include_tag 'swfobject.js' %>
</head>
.
.
.
<div id="dragndrop">This requires Adobe Flash to view</div>
<script type="text/javascript">
  var flashvars;
  var params = {
    movie: "<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>",
    background: "#FFFFFF",
    quality: "high"
  };

  swfobject.embedSWF("<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>",
    "dragndrop", "100%", "100%", "6.0.0", false, params);
</script>

导航到该页面不会产生任何结果,但会在浏览器中输出以下内容:

<object id="dragndrop" width="100%" height="100%" type="application/x-shockwave-flash"       
    data="/assets/flash/drag-n-drop-w-action3b.swf" style="visibility: visible;">
  <param name="flashvars" value="movie=/assets/flash/drag-n-drop-w-action3b.swf&background=#FFFFFF&quality=high">
</object>

我在没有参数的情况下尝试过,也无济于事。

我也尝试过以多种方式手动添加它,包括如here 所述。此 flash 文件目前已成功嵌入到不同的网站上,我什至将 html 复制粘贴到那里(修复了路径):

<object width="100%" height="100%" align="" 
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
  <param value="assets/flash/drag-n-drop-w-action3b.swf" name="movie">
  <param value="high" name="quality">
  <param value="#FFFFFF" name="bgcolor">
  <embed width="100%" height="100%" align="" 
    pluginspage="http://www.macromedia.com/go/getflashplayer" 
    type="application/x-shockwave-flash" bgcolor="#FFFFFF" quality="high"    
    src="/assets/flash/drag-n-drop-w-action3b.swf">
</object> 

我做错了什么?

编辑:

根据 pipwerks 的帮助,我将代码更改为:

var params = { background: "#FFFFFF",};
swfobject.embedSWF("<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>", "dragndrop", "100%", "100%", "6.0.0", false, false, params);

但是,它仍然无法正常工作。输出的新HTML如下:

<object id="dragndrop" width="100%" height="100%" type="application/x-shockwave-flash" 
    data="/assets/flash/drag-n-drop-w-action3b.swf" style="visibility: visible;">
  <param name="background" value="#FFFFFF">
</object>

【问题讨论】:

    标签: html flash embed swfobject


    【解决方案1】:

    对于初学者,您不小心将参数作为 flashvars 传递。

    其次,您不需要传递大部分参数,因为它们已经被处理好了。 movie 参数是 SWFObject 中的第一个参数。 quality=high 是 Fl​​ash Player 的默认值,不需要指定。我相信#FFFFFF 也是默认背景颜色,但指定它不会有坏处。

    参数的正确顺序是:

    swfobject.embedSWF([swf file], 
                       [document element id], 
                       [width], 
                       [height], 
                       [min Flash Player version], 
                       [express install swf or false], 
                       [flashvars obj or false], 
                       [params obj or false], 
                       [attributes obj or false], 
                       [callback function or false]);
    

    因此你的代码应该是:

    var params = { background: "#FFFFFF",};
    swfobject.embedSWF("<%= asset_path('flash/drag-n-drop-w-action3b.swf') %>", "dragndrop", "100%", "100%", "6.0.0", false, false, params);
    

    有关 swfobject 参数的更多详细信息,请参阅this page

    【讨论】:

    • 解决了作为 flash vars 传递参数的问题,但是 flash 对象仍然没有被嵌入。我需要明确嵌入它吗?我以为这没有必要?我已经使用您提供的代码更新了带有 HTML 输出的原始帖子。感谢您的帮助;我很感激!
    猜你喜欢
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多