我正在使用带有3D图形的Flash制作FB画布应用程序。我必须用param wmode =“direct”嵌入我的SWF。
根据FB documentation,当使用wmode =“direct”时,FB会在显示弹出/对话框(购买点数,聊天,通知等)时隐藏flash对象,并在弹出窗口关闭后显示再次闪现。
在Chrome和Firefox上它可以正常工作,但是在 IE 上,在对话框关闭后我检查了flash元素样式,我看到了visibility = visible,但仍然隐藏了flash!
我尝试了几种方法,结果相同:
使用“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');
}
谢谢!
Roei
更新
对FB文档的另一个参考:http://developers.facebook.com/docs/appsonfacebook/tutorial/#flash
答案 0 :(得分:1)
调用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();
希望这有帮助。
答案 1 :(得分:0)
您是否尝试过使用display: none;
和display:block
代替visibility: hidden
和visibility: visible
?在过去的项目中,我注意到IE有时会遇到visibility
CSS属性......