我正在开发一个具有 2 路 Javascript 到 Flash 通信的应用程序。这在一定程度上可以正常工作。
闪存是使用带有 wmode = window 的 swfObject 嵌入的,它必须用于性能目的。然而,这意味着我必须在 FB.init 中使用 hideFlashCallback。这是为了在 Facebook 对话框或聊天窗口打开时处理应用程序的暂停。
问题是,(仅在 Internet Explorer 中),在关闭对话框窗口等并使用 hideFlashCallback 再次显示 Flash 后,我无法再从 Javascript 与 Flash 进行通信。
我用于通信的代码是:
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
getFlashMovie("swfContainer2").sendToActionscript(value);
我已经研究了几个小时,看不出有什么原因会发生这种情况。我知道在 IE9 中你应该使用 document[movieName] 而不是 window[movieName],但这仍然不能解决问题。正如我所说,在 hideFlashCallback 之前一切正常。
似乎由于某种原因,document[movieName] 找不到 Flash 对象,即使它显然在页面上。
任何关于为什么这可能不起作用以及如何解决它的想法将不胜感激!