Нарушение песочницы - во флеш-плеере - проблема с междоменными именами? - PullRequest
0 голосов
/ 28 августа 2009

Мне интересно, если кто-нибудь решил что-то подобное этому.

У меня есть веб-страница на сайте-A, на которой есть встроенный SWF-файл с сайта-B. SWF-файл выдает ошибку изолированной программной среды при попытке получить текстовый файл через URLLoader из папки на сайте-B.

У меня есть междоменная политика на сайте B (в настоящее время установлено). Я что-то здесь упускаю? Где я могу поместить текстовый файл, чтобы SWF мог загрузить его? У меня есть доступ к сайту A и B.

Любая помощь высоко ценится

1 Ответ

1 голос
/ 28 августа 2009

Это зависит от того, как вы компилируете SWF. Существует проблема безопасности Sanbox. В Essential Actionscript 3.0 есть целая глава по безопасности, но я постараюсь сделать ее краткой.

Используя Flash IDE, у вас есть две «опции безопасности» либо у вашего swf есть права на локальную загрузку клипов (из того же домена), либо из сети (другие домены)

Скажем, swfA - это SWF на сайте-A, а swfB - это SWF на сайте-B

.

Прежде всего, попробуйте установить LoaderContext для загрузчика, который вы используете для swfB

, например

//1st param(true) in LoaderContext constructor means always check for policy files 
var swfBLoaderContext:LoaderContext = new LoaderContext(true);
var swfBLoader:Loader = new Loader();
swfBLoader.contentLoaderInfo.addEventListener(Event.INIT, swfBLoaded);
swfBLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, swfBIOError);
swfBLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, swfBSecurityError);

swfBLoader.load(new URLRequest('http://siteb.com/b.swf',swfBLoaderContext);

function swfBLoaded(event:Event):void{
    trace(event.target.content);
}
function swfBIOError(event:IOErrorEvent):void{
    trace(event);
}
function swfBSecurityError(event:SecurityErrorEvent):void{
    trace(event);
}

Затем измените локальную безопасность воспроизведения в настройках документа, чтобы получить доступ к сетевым файлам.

альтернативный текст http://www.adobe.com/devnet/flash/articles/local_network_playback/fig01.jpg

Спасибо Adobe за изображение.

Для получения более подробной информации обратитесь к этой статье на devnet .

Гудлак.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...