ExternalInterface.addCallback не работает в локальной среде - PullRequest
1 голос
/ 15 июля 2011

Я думал, этот вопрос ответит на мой вопрос, но я применил следующие исправления:

.as

Security.allowDomain("*");
Security.allowInsecureDomain("*");

.html

param name="allowScriptAccess" value="always" />

.js

params.allowscriptaccess = "always";

И я все еще вижу, что метод ExternalInterface.addCallback не работает локально. Он работает на веб-сервере или в папке dev . Но не в произвольной локальной папке.

Ответы [ 3 ]

2 голосов
/ 15 июля 2011

Добавьте в качестве надежного местоположения папку, в которой находится ваш swf / html.Щелкните правой кнопкой мыши Flash Player> «Глобальные настройки»> «Дополнительно»> «Надежные расположения».

1 голос
/ 16 июля 2011

попробуйте добавить папку, в которой вы хотите это проверить, в настройки безопасности здесь: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

1 голос
/ 15 июля 2011

Я предполагаю, что проблема возникает при загрузке страницы .html с URL-адреса file:// (а не при запуске с веб-сервера, даже с локального хоста). Эта проблема возникает из-за того, что проигрыватель Flash Player использует другую изолированную программную среду безопасности для локальных файлов.

ExternalInterface.addCallback нельзя использовать в песочнице file://, если у вас нет набора «Надежное расположение» (согласно ответу Тома; это может объяснить, почему он работает в вашей папке dev, если он настроен как надежное расположение) , К сожалению, установка надежных расположений может быть непростой задачей, поэтому я предпочитаю настроить веб-сервер на localhost для моего тестирования.

Если вашей конечной целью является развертывание вашего html (и js, swf и т. Д.) На веб-сервере, тогда вы должны столкнуться с этой проблемой только во время разработки (за исключением других междоменных проблем). Но если вы планируете распространять без веб-сервера (скажем, записи файлов на DVD), это будет постоянной проблемой.

...