【问题标题】:External Interface Calls To Flash Not Working in IE9对 Flash 的外部接口调用在 IE9 中不起作用
【发布时间】:2011-01-31 15:48:21
【问题描述】:

我们在网页中嵌入了一个 Flash 游戏(使用 SWFObject v2.2),页面上有一些链接以下列方式调用 Flash:

window.document["flashObjectId"].flashMethod();

这在我们尝试过的所有浏览器(包括 IE7 和 8)上都运行良好,但是在 IE9 上它会生成以下错误:“SCRIPT438:对象不支持此属性或方法”。

它确实在兼容模式下工作,所以我尝试添加一个元标记来告诉 IE9 默认使用兼容模式,但这不起作用,因为我们的游戏在 Facebook 的 IFrame 中运行。

我已经尝试在 Javascript 中以我能想到的各种方式引用 flash 对象,但在 IE9 中我总是收到相同的错误消息。如果有人有任何信息可以帮助我让它在 IE9 中工作,我将不胜感激!

【问题讨论】:

标签: javascript flash internet-explorer-9


【解决方案1】:

这可能是您的问题的原因,这里也提供了解决方案:

http://msdn.microsoft.com/en-us/library/gg622942%28v=VS.85%29.aspx

【讨论】:

    【解决方案2】:

    我有同样的问题,但我没有使用 SWFObject 或 AC_RunActiveContent.js。

    我的解决方案是:使用 HTML 和 AC_RunActiveContent.js 发布 swf。然后我用从闪存导出的代码替换了我当前的代码,它开始工作了。

    【讨论】:

      【解决方案3】:

      您对此有何看法?

      function getFlashObject(movieName) {
          if (navigator.appName.indexOf("Microsoft") != -1) {
              //alert("IE");
              if (typeof (window[movieName].flashMethod) == 'function') {
                  // < IE9
                  movie = window[movieName];
              }
              else if (typeof (document[movieName].flashMethod) == 'function') {
                  // >= IE9
                  movie = document[movieName];
              }
          }
          else {
              // NON IE
              movie = document[movieName];
          }
      
          return ((movie) ? true : false);
      }
      
      $(document).ready(function () {
          if(getFlashObject("flashObjectId")) {
              movie.flashMethod();
          } else {
              alert("Failed to initialize");
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-09
        相关资源
        最近更新 更多