【问题标题】:How can I disable facebook's new-message popup?如何禁用 facebook 的新消息弹出窗口?
【发布时间】:2013-10-03 22:57:53
【问题描述】:

我知道处理 wmode 问题的标准方法是注册一个回调来暂停 flash 应用程序并在 flash 对象隐藏时用图像替换 flash 区域。

我要避免的是,当有人向用户发送消息时,由于 facebook-chat 自动弹出,flash 在游戏中期消失(用户的朋友基本上可以远程暂停用户的游戏,只需向他们发送一个即时消息)。

似乎 Angry Birds Friends 和 Zynga 的 Ruby Blast Adventure 以某种方式解决了这个问题。这些游戏在 stage3d 上运行,因此它们的 wmode 设置为“直接”,当收到即时消息时,facebook 只显示一个小的新消息指示符,而不是立即显示完整的消息对话框。

我不知道他们是如何做到这一点的。 对我来说,facebook 似乎总是在收到消息后立即弹出消息。

游戏在 stage3d 中,因此必须有一个“直接”的 wmode。

任何帮助将不胜感激。

【问题讨论】:

    标签: facebook flash stage3d wmode


    【解决方案1】:

    我正在与同样的问题作斗争,除了 imo,完美的解决方案是同时显示聊天(和其他 facebook 菜单)和 stage3d flash。似乎设置包含闪光灯的元素,例如div 为:

    display: block !important; 
    visibility: visible !important; 
    

    成功了,但我不太确定这是完美的解决方案。似乎在某些浏览器/操作系统组合上,一些(Facebook 调用的)ui 内容现在至少部分显示在 flash 后面。非常感谢“官方正确答案(tm)”。

    【讨论】:

      【解决方案2】:

      您可以编写一个侦听器函数,以便在您的游戏失去或重新获得焦点时调用,并通过将其作为hideFlashCallback 参数传递给FB.init() 将其注册到Facebook 环境中。侦听器将被传递一个参数字典,其中包含一个名为 state 的键,如果您应该隐藏游戏,它将被设置为打开。

      在这种情况下,监听器应该调用 Flash 应用的 exportScreenshot 方法,使用 Base64 编码的图像数据创建数据 URL,并将其作为 img 元素的 src;它应该使用 JS SDK 中的 FB.hideFlashElement 方法将应用程序的包含元素移出屏幕,并将其替换为 img。如果传递给侦听器的参数字典没有 state: "opened",则使用 FB.Canvas.showFlashElement 将您的 Flash 应用程序重新显示在屏幕上。

      您可以在这里找到更多信息:https://developers.facebook.com/docs/games/gamesonfacebook/optimizing#handlingpopups

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 2015-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多