安全沙箱违规Flash AS3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全沙箱违规Flash AS3相关的知识,希望对你有一定的参考价值。

我正试图通过我的flash项目播放Youtube视频。视频播放但我得到下面的错误,它破坏了我的项目的其余部分。我找不到任何有这个确切错误的地方。我一直试图理解它告诉我的是什么,但我不能绕过它。错误:

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

这是我为玩家提供的代码:

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;
} 

这是我的最后一年大学项目的一部分,所以如果有人有任何想法,我非常乐意尝试一下。提前致谢 :)

答案

出于安全原因,FlashPlayer会分离两个本地和远程沙箱(网络)。在您只允许使用其中一个时,您无法同时加载内容。从本地文件系统加载的每个swf都在本地沙箱中考虑,其他所有swf都在网络沙箱中考虑。

所以现在你的swf是从文件系统加载而不是从web-server加载而flash考虑在本地沙箱中,然后你的swf加载来自远程/网络沙箱的内容,即来自www.youtube.com,如上所述,swf在本地运行sandbox无法从远程沙箱加载内容,而远程沙箱中的swf也无法从本地沙箱加载内容。所以错误很自然。

allowDomain()只允许来自同一个沙箱的不同域,即您可以将内容从www.youtube.com加载到从www.yourdomain.com加载的swf中。

有关安全沙箱的更多信息,请参阅:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3f.html

现在来解决你的问题:

1)您可以从localhost设置本地HTTP服务器locad swf。

2)或者你可以将你的swf放在本地可信任的swf列表中。只允许本地受信任的swf同时从两个沙箱加载内容。有关如何将swf放入本地可信列表的信息,请参阅以下链接。

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

另一答案

尝试在项目中包含如下所示的跨域文件。

<?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="*"/>
</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

以上是关于安全沙箱违规Flash AS3的主要内容,如果未能解决你的问题,请参考以下文章

Flash AS3 Security Sandbox Violation / s.ytimg.com

Flash AS3全局安全设置 - 以编程方式

AIR - Google Maps API安全沙箱违规?

浅谈Flash Socket通信安全沙箱

AS3 沙箱

Adobe Animate (Flash):在调试 (Ctrl+Shift+Enter) 中违反安全沙箱,但在测试中违反 (Ctrl+Enter)