Вопрос по youtube, actionscript-3, youtube-api, flash – Безопасность Песочница Нарушение Flash AS3

2

Я пытаюсь воспроизвести видео с YouTube через мой проект Flash. Видео воспроизводится, но я получаю ошибку ниже, и это разрушает остальную часть моего проекта. Я не могне могу найти нигде, где была эта точная ошибка. Я пытался понять, что это такоеговорит мне, но я просто не могу обернуть голову вокруг этого. Ошибка:

*** Security Sandbox Violation ***
SecurityDomain 'http://s.ytimg.com/yts/swfbin/apiplayer3-vflmoXxFm.swf' 
tried to access incompatible context 'file:flashProject.swf'

Вот's код, который я имею для игрока:

Security.allowDomain("www.youtube.com");

var my_player:Object;

var my_loader:Loader = new Loader();
my_loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
my_loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);

function onLoaderInit(e:Event):void{
addChild(my_loader);
my_player = my_loader.content;
my_player.addEventListener("onReady", onPlayerReady);
} 

function onPlayerReady(e:Event):void{
my_player.setSize(600,300);
my_player.cueVideoById("76BboyrEl48",0);
my_player.x = stage.stageWidth/2 - my_player.width/2;
my_player.y = stage.stageHeight/2 - my_player.height/2;
} 

Это часть моего проекта в колледже на последнем курсе, так что если у кого-то есть какие-либо идеи, я буду очень рад попробовать. Заранее спасибо :)

Ваш Ответ

2   ответа
2

удаленную (сетевую). Если вам разрешено использовать только один из них, вы не можете загружать контент одновременно. Каждый SWF, загруженный из локальной файловой системы, рассматривается в локальной изолированной программной среде, все остальные рассматриваются в сетевой изолированной программной среде.

Итак, теперь ваш SWF загружается из файловой системы, а не с веб-сервера, и Flash считает его в локальной песочнице, а затем ваш SWF загружает контент из удаленной / сетевой песочницы, т.е. с www.youtube.com, как я уже говорил выше, SWF работает в локальном песочница не может загрузить контент из удаленной песочницы, и то же самое для swf в удаленной песочнице не может загрузить контент из локальной песочницы. Так что ошибка естественна.

allowDomain() разрешены только разные домены из одной песочницы, т.е. вы можете загружать контент с www.youtube.com в swf, загруженный с www.yourdomain.com

Форма больше информации о безопасности песочницы см. Здесь:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3f.html

Теперь, чтобы исправить вашу проблему:

1) Вы можете настроить локальный HTTP-сервер locad swf с localhost.

2) Или вы можете поместить свой SWF в локальный список доверенных SWF. Только локальный доверенный SWF-файл может загружать содержимое из обеих песочниц одновременно. См. Ссылку ниже для получения информации о том, как поместить ваш SWF в локальный список доверенных.

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3f.html

2

подобный показанному ниже, в ваш проект.

<!--?xml version="1.0"?-->
<cross-domain-policy>
   <site-control permitted-cross-domain-policies="all">
   <allow-access-from domain="*">
   <allow-http-request-headers-from domain="*" headers="*">
</allow-http-request-headers-from></allow-access-from></site-control></cross-domain-policy>

В противном случае попробуйте добавить свой контент здесь под панелью настроек безопасности.http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

для получения дополнительной информации о безопасности песочнице обратитесь к:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3f.html

Похожие вопросы