ExternalInterface для вызова функции принадлежит объекту JS

Я использую ExternalInterface в моем проекте AS3, чтобы сделать некоторые вещи с помощью Javascript, но теперь мне нужно использовать его, чтобы вызвать некоторую функцию, принадлежащую объекту.

Как то так (AS3):

ExternalInterface.call("VIEWER.loadComplete");

JS код:

var VIEWER = {
    loadComplete: function(){
        $('#'+this.maindiv).children('.mask').hide();
        $('#'+this.viewer).css({
            width:      '640px', 
            height:     '480px',
            overflow:   ''
        });
    }
}

Это не работает в Chrome (работает только в Firefox, и я тоже не знаю почему). Может кто-то уточнить меня таким образом?

2 ответа

Решение

Я решил свою собственную проблему, добавив следующее в мой объект SWF, встроенный в HTML:

<param name="AllowScriptAccess" value="always">

Теперь мой SWF может звонить ExternalInterface (даже в Chrome).

Проблемы с версией проигрывателя Chrome. Правила, установленные в глобальных настройках проигрывателя Flash Player, не используются и не загружаются этим проигрывателем. Таким образом, вы всегда получаете ошибки безопасности песочницы и внешние интерфейсы не работают.

Вам нужно перейти на страницу плагинов Chrome chrome://plugins/ и дезактивировать PPAPI (Pepper API, версия Chrome) версии Flash Player и включить только NPAPI версия (классическая).

Другие вопросы по тегам