flex ExternalInterface не будет выполнять функцию call () - PullRequest
0 голосов
/ 03 сентября 2011

По какой-то причине ExternalInterface.avaiable показывает true, но не вызывает alert (). Кто-нибудь может пролить свет на эту проблему?

private function checkEI():void {
     eiStatus = ExternalInterface.available.toString();
     ExternalInterface.call("alert", "hi");
}

Мой конфиг здесь:

var params = {
    menu: "false",
    scale: "noScale",
    allowFullscreen: "true",
    allowScriptAccess: "always",
    bgcolor: "",
    wmode: "direct" // can cause issues with FP settings & webcam
};

Похоже, это связано с отсутствием веб-сервера и открытием html-файла непосредственно браузером. Есть ли способ заставить его работать без веб-сервера?

Ответы [ 3 ]

0 голосов
/ 03 сентября 2011

Вы пробовали

ExternalInterface.call("javascript:alert", "hi");

Подумав, политика безопасности Flash запрещает swf вызывать javascript в html поверх протокола файла.Вы получите эту ошибку: #2060: Security sandbox violation: ExternalInterface caller file: c:/test.swf cannot access file: c:\testhtml.htm

Я полагаю, что аналогичный вопрос также существует в Работает ли ExternalInterface с файлом: protocol?

0 голосов
/ 15 июня 2012

Вот мой ответ, который я опубликовал некоторое время назад. Надеюсь, это поможет.

Extract:

Я понял, что по каким-то причинам ExternalInterface.call не работает для файла: // и требуется http (s): //

Итак, любой, кто сталкивается с этой проблемой, принесет себе веб-сервер (Apache) или GAE для тестирования подобных вещей

0 голосов
/ 03 сентября 2011

Попробуйте указать оба параметра id и classid в параметрах встраивания.Это помогло мне во всех браузерах (особенно IE).

...