Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 安全沙盒违规Flash AS3_Actionscript 3_Flash_Youtube_Youtube Api - Fatal编程技术网

Actionscript 3 安全沙盒违规Flash AS3

Actionscript 3 安全沙盒违规Flash AS3,actionscript-3,flash,youtube,youtube-api,Actionscript 3,Flash,Youtube,Youtube Api,我正试图通过我的flash项目播放Youtube视频。视频播放,但我得到下面的错误,它破坏了我的项目的其余部分。我找不到任何地方有这个确切的错误。我一直在试图理解它告诉我什么,但我就是无法理解它。 错误: 以下是我为玩家准备的代码: Security.allowDomain("www.youtube.com"); var my_player:Object; var my_loader:Loader = new Loader(); my_loader.load(new URLRequest("

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

以下是我为玩家准备的代码:

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是从文件系统而不是从web服务器加载的,flash将其放在本地沙箱中,然后您的swf从远程/网络沙箱加载内容,即从www.youtube.com加载内容,正如我前面提到的,本地沙盒中运行的swf无法从远程沙盒加载内容,远程沙盒中的swf也无法从本地沙盒加载内容。所以错误是自然的

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

有关安全沙盒的更多信息,请参见:

现在要解决您的问题:

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

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


出于安全原因,FlashPlayer将本地和远程(网络)两个沙盒分开。当您只允许使用其中一个时,您不能同时从两个站点加载内容。从本地文件系统加载的每个swf都在本地沙箱中考虑,其他所有东西都在网络沙箱中考虑

因此,现在您的swf是从文件系统而不是从web服务器加载的,flash将其放在本地沙箱中,然后您的swf从远程/网络沙箱加载内容,即从www.youtube.com加载内容,正如我前面提到的,本地沙盒中运行的swf无法从远程沙盒加载内容,远程沙盒中的swf也无法从本地沙盒加载内容。所以错误是自然的

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

有关安全沙盒的更多信息,请参见:

现在要解决您的问题:

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

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


尝试在项目中包含一个跨域.xml文件,如下图所示

<?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>


有关安全性沙盒的更多信息,请参阅:

尝试在项目中包含一个类似下面所示的跨域.xml文件

<?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>


有关安全性沙箱的更多信息,请参阅:

您看过这些问题吗:,,您看过这些问题吗:,