动态加载swf后无法与Flex通信

时间:2009-08-01 02:19:04

标签: javascript jquery flex actionscript-3

出于某种原因,每当我通过写入div在$(document).ready()上动态加载swf 时,我无法对浏览器进行javascript调用。具体来说,对浏览器的所有调用都返回“null”。将swf正常嵌入页面加载时不会发生这种情况,但我想阻止加载swf直到指定的时间点。

这到底是怎么回事?有关动态嵌入swf以防止swf与浏览器通信的问题吗?方法被调用(我通过显示警告证明了这一点),但是无论返回什么类型,任何函数的所有返回值都显示为空时闪烁。

这是flex的错误,还是我完全错过了什么?这对我来说是一个令人头痛的问题。

3 个答案:

答案 0 :(得分:1)

切换到swfobject2.2以嵌入swf可以神奇地缓解这个问题。

答案 1 :(得分:0)

我假设您正在使用ExternalInterface.call(或者可能是.addcallback)?你可以发布一些代码(特别是来自JS方面)吗?

答案 2 :(得分:0)

我遇到了这个确切的问题并使用原型PeriodicalExecuter以这种(略微icky)的方式绕过它:

Event.observe(window, 'load', function() {
  //Check to see if the flash function is available once per second.
  new PeriodicalExecuter( function(pe) {
      var flash = $('flashObject');

      if(typeof flash.myFlashFunc == 'function'){
          //At this point, the flash function is available
          pe.stop()
      }
  }, 1);
});

更新到最新版本可能是最好的方法。我必须在我的最后尝试。

相关问题