【问题标题】:How do I get flashvars in Firefox using object embed tag only to work?如何使用对象嵌入标签在 Firefox 中获取 flashvars?
【发布时间】:2011-02-18 01:38:12
【问题描述】:

我正在尝试生成一个仅嵌入代码的<object> 标记,并且无法让 Firefox 将 Flash 沿 FlashVars 值传递。这似乎适用于我尝试过但在 Firefox 中失败的所有其他地方。这是我正在使用的嵌入示例:

<object type="application/x-shockwave-flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" id="Main" align="middle" data="Main.swf"> <param name="movie" value="Main.swf" /> <param name="allowScriptAccess" value="always" /> <param name="allowFullScreen" value="true" /> <param name="bgcolor" value="#ffffff" /> <param name="quality" value="high" /> <param name="menu" value="false" /> <param name="FlashVars" value="foo=1" /> </object>

请注意,Flash 体验确实出现在 Firefox 中,但是当我进行跟踪并实际运行应用程序时,无法读取值。这让我挠了一天的头,我很困惑。如果有人对此有任何指导,将不胜感激。

【问题讨论】:

  • 你尝试过计时技巧吗,你有两个支持理论的答案,我的和 mattias 的。我经常遇到 flash vars 无法通过的情况,而且几乎总是这样,因为我在第一帧或在 flash 播放器有机会注册它们之前在 actionscript 中访问了它们。

标签: flash actionscript-3 firefox embed flashvars


【解决方案1】:

对于 Fire Fox,使用 Object Tag 下的 EMBED TAG 作为

【讨论】:

    【解决方案2】:

    我将这个嵌入(是的,它包含嵌入标签)用于我的隐形 mp3 播放器,它到处乱跑:

    <object style="position:fixed" id="1pixPlayer" width="1" height="1" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
    <param value="transparent" name="wmode">
    <param value="1pxMp3.swf" name="movie">
    <param value="always" name="allowScriptAccess">
    <param name="flashvars" value="id=1&amp;var=val&amp;var1=val1">
    <embed name="1pixPlayer" width="1" height="1" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always" src="1pxMp3.swf" flashvars="id=1&amp;var=val&amp;var1=val1"></object>
    

    【讨论】:

    • 这个例子不包含任何传递给它的参数,正如你提到的,它还使用了我试图避免使用的嵌入标签。是的,它会起作用,但并不是我真正想要的。
    • @Liam 在我的回答中添加了 flasvars。但是我不知道如何避免嵌入 FF
    【解决方案3】:

    可能是您的 Firefox 中的 Flash Player 插件版本不同,或者需要更多时间将参数导入 swf。尝试使用计时器或 ENTER_FRAME 侦听器进行延迟调用,以查看您的参数是否设置为延迟。

    private function checkProgress(event : TimerEvent) : void
    {
        // check if loaderInfo.parameters is set
    }
    

    【讨论】:

      【解决方案4】:

      在访问属性之前,请确保您在时间线上至少有 5 帧。或者,如果在代码中等待一段时间。问题是玩家有时在第一帧没有价值。稍后他们会在那里。

      【讨论】:

      • 这就是为什么它有时会起作用但并非总是如此,并且在浏览器和机器上会有所不同。
      【解决方案5】:

      我刚刚在 Fx 3.6 中运行了以下命令,它运行良好。我不确定为什么你的版本不工作。它可能与无效属性有关。它位于带有 doctype 集的 XHTML 严格文档中。

      <object type="application/x-shockwave-flash" data="movie.swf" width="100" height="100">
          <param name="movie" value="movie.swf" />
          <param name="salign" value="lt" />
          <param name="flashvars" value="foo=bar" />
      </object>
      

      【讨论】:

        【解决方案6】:

        你试过了吗

        <param name="movie" value="Main.swf?foo=1" />
        

        将参数传递给 SWF 的“老派”方式。

        【讨论】:

        • 我想做的是不必在嵌入中两次传递 FlashVars。在您给出的示例中,我必须在对象标记的参数和数据属性中都这样做。在 Firefox 中,您使用 th data 属性,因此它知道 SWF 所在的位置,因为它不尊重参数位置引用。不完全是我正在寻找的东西,但感谢您的建议。
        • 你有什么理由不使用类似 swfobject 的东西吗?
        • SWFObject 并不总是一种选择,在我的情况下,我不想依赖 JavaScript,理论上,直接嵌入可以工作。这可能是浏览器限制之一,它只是让事情变得不像我喜欢的那样紧凑和干净。这也有助于共享嵌入代码,而不是将嵌入嵌套在对象标签中。
        猜你喜欢
        • 2010-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 2010-11-17
        相关资源
        最近更新 更多