我正在开发一款具有双向Javascript到Flash通信功能的应用。这很好,直到某一点。
使用带有wmode = window的swfObject嵌入flash,它必须用于性能目的。但是,这意味着我必须在FB.init中使用hideFlashCallback。这是为了在Facebook对话框或聊天窗口打开时处理暂停应用程序。
问题是,(仅在Internet Explorer中),关闭对话框窗口等并使用hideFlashCallback再次显示闪存后,我无法再通过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。
似乎由于某种原因,文档[movieName]无法找到Flash对象,即使它在页面上显然也是如此。
关于为什么这可能不起作用以及如何解决它的任何想法将不胜感激!