Приложения Adobe Flash на facebook.com
Для приложений Canvas, использующих Adobe Flash, по возможности предпочтительнее использовать wmode = "opaque".Мы обнаружили, что в современных браузерах с аппаратной компоновкой, как правило, нет снижения производительности при использовании wmode = "opaque".В противном случае Facebook по умолчанию будет скрывать ваши объекты Flash при возникновении всплывающих событий и повторно отображать их при закрытии всплывающего окна.
Если вам нужно использовать wmode = "window", и он хочет контролировать это поведение(например, отображение текста или изображения, когда это происходит), вы можете предоставить функцию в параметре hideFlashCallback для FB.init.hideFlashCallback принимает поле состояния как часть переданных параметров, указывающих, открывается ли окно или нет.Это реализация по умолчанию, которую вы будете переопределять, если вы ее предоставите, но она также может дать вам представление о том, как будет выглядеть ваше переопределение:
function(params) {
var candidates = window.document.getElementsByTagName('object');
for (var i = 0; i < candidates.length; i++) {
var elem = candidates[i];
if (elem.type != "application/x-shockwave-flash") {
continue;
}
var good = false;
for (var j = 0; j < elem.childNodes.length; j++) {
if (elem.childNodes[j].nodeName == "PARAM" && elem.childNodes[j].name == "wmode") {
if (elem.childNodes[j].value != "window" && elem.childNodes[j].value != "default") {
good = true;
}
}
}
if (!good) {
if (params.state == 'opened') {
elem.style.old_visibility = elem.style.visibility;
elem.style.visibility = 'hidden';
} else if (params.state == 'closed') {
elem.style.visibility = elem.style.old_visibility;
elem.style.old_visibility = '';
}
}
}
}
Примечание: некоторые методы пользовательского интерфейса, такие как stream.publish иstream.share можно использовать без регистрации приложения или вызова этого метода.Если вы используете идентификатор приложения, все методы должны вызываться после этого метода.