代码之家  ›  专栏  ›  技术社区  ›  Mads Mobæk

firefox、wmode和fscommand

  •  0
  • Mads Mobæk  · 技术社区  · 15 年前

    我正在使用swfobject在我的网站上嵌入flash。

    var so = new SWFObject("file.swf", "file", "100%", "100%", "8", "#FFFFFF");
    so.addParam("wmode", "opaque");
    so.addParam("allowscriptaccess", "always");
    so.write(container);
    

    据我所知,这在所有浏览器中都很有吸引力,但我也在使用flash的fscommand,因此我有一个功能:

    function file_DoFSCommand(command, args) {
        alert("It works!");
    }
    

    这也适用于我测试过的所有浏览器,除了Windows上的firefox,在Windows上文件“dofscommand”不会被调用(但会显示flash)。Firefox Mac和其他浏览器显示“它工作了!”果不其然。很奇怪。如果我删除“wmode”,“opaque”,它会突然生效,但是我的css菜单会低于flash,所以这不是一个选项。 wmode=transparent似乎不会改变任何东西。

    设置so.addparam(“allowscriptaccess”,“never”)会使其他浏览器在设置wmode时在Windows上的行为类似于ff。

    有什么关于FF不起作用的建议吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Mads Mobæk    15 年前

    @西奥,谢谢你给我小费。不过,它并没有解决我的问题,但在寻找如何使用ExternalInterface时,我发现一个页面说,当容器被隐藏时,IE不会接收来自Flash的调用。我的容器未被隐藏,但高度设置为0:

    <div id="flashcontainer" style="height:0">
    

    将高度设置为1px解决了这个问题,现在火狐成功地接收到了来自flash的呼叫。

        2
  •  0
  •   Theo.T    15 年前

    首先,尝试使用externalInterface而不是fscommand(以某种方式贬值)。现在已经有很多例子了。