Вызовы внешнего интерфейса для Flash не работает в IE9 - PullRequest
3 голосов
/ 31 января 2011

У нас есть флэш-игра, встроенная в веб-страницу (с использованием SWFObject v2.2), и на этой странице есть несколько ссылок, которые вызывают флэш-память следующим образом:

window.document["flashObjectId"].flashMethod();

Это сработалоотлично подходит для всех браузеров, которые мы пробовали, включая IE7 и 8, однако в IE9 выдает следующую ошибку: «SCRIPT438: объект не поддерживает это свойство или метод».

Он работает в режиме совместимости, поэтому я попыталсядобавив метатег, чтобы сказать IE9 использовать режим совместимости по умолчанию, однако это не сработало, потому что наша игра работает в IFrame в Facebook.

Я пытался ссылаться на объект флэш-памяти всеми способами, которые я мог придумать в Javascript, но я всегда получаю одно и то же сообщение об ошибке в IE9.Если у кого-нибудь есть какая-либо информация, которая может помочь мне заставить его работать в IE9, я был бы очень признателен!

Ответы [ 3 ]

2 голосов
/ 23 марта 2011

Это, вероятно, причина вашей проблемы, и решение также предоставлено здесь:

http://msdn.microsoft.com/en-us/library/gg622942%28v=VS.85%29.aspx

0 голосов
/ 21 июля 2011

Что вы думаете об этом?

function getFlashObject(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        //alert("IE");
        if (typeof (window[movieName].flashMethod) == 'function') {
            // < IE9
            movie = window[movieName];
        }
        else if (typeof (document[movieName].flashMethod) == 'function') {
            // >= IE9
            movie = document[movieName];
        }
    }
    else {
        // NON IE
        movie = document[movieName];
    }

    return ((movie) ? true : false);
}

$(document).ready(function () {
    if(getFlashObject("flashObjectId")) {
        movie.flashMethod();
    } else {
        alert("Failed to initialize");
    }
}
0 голосов
/ 17 марта 2011

У меня была такая же проблема, но я не использовал SWFObject или AC_RunActiveContent.js.

Мое решение было: swf опубликован с HTML и AC_RunActiveContent.js.Затем я заменил свой текущий код на экспортированный из флэш-памяти, и он начал работать.

...