Как отключить всплывающее окно с новым сообщением в Facebook?
Я знаю, что стандартным способом решения проблемы wmode является регистрация обратного вызова, который приостанавливает работу приложения флэш-памяти и заменяет область флэш-памяти изображением, пока объект флэш-памяти скрыт.
Чего я пытаюсь избежать, так это того, что в середине игры вспышка исчезает из-за автоматического всплывающего сообщения в чате на Facebook, когда кто-то отправляет сообщение пользователю (друзья пользователя могут по существу приостановить игру пользователя, просто отправив ему мгновенное сообщение).,
Кажется, что Angry Birds Friends и Ruby Blast Adventure от Zynga как-то решили эту проблему. Эти игры работают на stage3d, поэтому их режим wmode установлен на "direct", и при получении мгновенного сообщения Facebook отображает только небольшой индикатор новых сообщений вместо отображения полного диалога сообщений.
Я не могу понять, как им удалось это сделать. Мне кажется, что Facebook всегда выскакивает в сообщениях сразу после получения сообщения.
Игра находится в stage3d, поэтому наличие режима 'direct' является обязательным.
Любая помощь будет принята с благодарностью.
2 ответа
Я борюсь с той же проблемой, кроме imo, идеальным решением было бы показывать и чат (и другие меню Facebook), и flash3 stage3d одновременно. Похоже, что установка элемента, содержащего flash, например, div как:
display: block !important;
visibility: visible !important;
делает свое дело, но я не совсем уверен, что это идеальное решение. Похоже, что в некоторых комбинациях браузер / ОС некоторые (пользовательский интерфейс Facebook) элементы пользовательского интерфейса теперь показываются позади флеш-памяти, по крайней мере, частично. Был бы признателен за "официальный правильный ответ (тм)".
Вы можете написать функцию слушателя, которая будет вызываться, когда ваша игра теряет или восстанавливает фокус, и зарегистрировать ее в среде Facebook, передав ее FB.init()
как hideFlashCallback
параметр. Слушателю будет передан словарь параметров, который будет содержать ключ с именем state, который будет открыт, если вы должны скрывать свою игру.
В этом случае слушатель должен вызвать метод exportScreenshot приложения Flash, использовать данные изображения в кодировке Base64 для создания URL-адреса данных и сделать это src элемента img; он должен переместить содержащий элемент вашего приложения за пределы экрана, используя FB.hideFlashElement
метод в JS SDK, и заменить его этим img
, Если словарь параметров, переданный слушателю, не имеет состояния "открыто", вместо этого верните приложение Flash обратно на экран, используя FB.Canvas.showFlashElement
,
Вы можете найти больше информации здесь: https://developers.facebook.com/docs/games/gamesonfacebook/optimizing