我正在开发一个使用 Flash 和 3D 图形的 FB Canvas 应用程序。我必须使用参数 wmode="direct"嵌入我的 SWF。
根据FB documentation ,当使用 wmode="direct"时,FB 在显示弹出窗口/对话框(购买积分、聊天、通知等)时 Conceal Flash 对象,并在弹出窗口关闭后再次显示 Flash。
在 Chrome 和 Firefox 上它可以工作,但在 IE 上,对话框关闭后我检查了 Flash 元素样式,我看到 Visibility=visible,但 Flash 仍然是 Conceal 的!
我尝试了几种方法,但结果都相同:
- 不在 FB.init 上使用“hideFlashCallback”(让 FB 来做) 自动)
使用“hideFlashCallback”:
function onFlashHide(params) { if (params.state == 'opened') { hideFlash(); FB.Canvas.hideFlashElement(params.elem); } else if (params.state == 'closed') { showFlash(); FB.Canvas.showFlashElement(params.elem); } } function hideFlash() { $('#flashContent').css('visibility', 'hidden'); } function showFlash() { $('#flashContent').css('visibility', 'visible'); }
谢谢!
罗伊
更新:
FB文档的另一个引用:http://developers.facebook.com/docs/appsonfacebook/tutorial/#flash
最佳答案
在调用 FB.ui 函数时,我在 IE 上遇到了同样的问题。 Facebook 对话框将打开,但关闭后 Flash 将不会返回。
我发现了一个解决这个问题的技巧。在调用 FB 函数之前,使用 javascript 将焦点设置到不同的 HTML 元素。之后,当我完成 Facebook 对话框时,Flash 对象再次可见。
// IE9 has a problem where the Flash object won't regain
// focus if it has focus when the FB UI is called. To fix this,
// We'll redirect focus before the call.
var lFocus = document.getElementById('focus_target');
lFocus.focus();
希望这有帮助。
关于Facebook Flash Conceal 功能在 IE 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965344/