Facebook闪存隐藏不在IE上工作

时间:2012-04-01 14:56:32

标签: facebook flash facebook-canvas

我正在使用带有3D图形的Flash制作FB画布应用程序。我必须用param wmode =“direct”嵌入我的SWF。

根据FB documentation,当使用wmode =“direct”时,FB会在显示弹出/对话框(购买点数,聊天,通知等)时隐藏flash对象,并在弹出窗口关闭后显示再次闪现。

在Chrome和Firefox上它可以正常工作,但是在 IE 上,在对话框关闭后我检查了flash元素样式,我看到了visibility = visible,但仍然隐藏了flash!

我尝试了几种方法,结果相同:

  1. 在FB.init上不使用“hideFlashCallback”(让FB去做) 自动地)
  2. 使用“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');  
    }  
    
  3. 谢谢!
    Roei

    更新
    对FB文档的另一个参考:http://developers.facebook.com/docs/appsonfacebook/tutorial/#flash

2 个答案:

答案 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: hiddenvisibility: visible?在过去的项目中,我注意到IE有时会遇到visibility CSS属性......