AS3:crossdomain.xml不起作用

时间:2011-10-31 18:05:19

标签: flash actionscript-3 load external

我正在开发这个视频播放器: http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/index.html

在上面的示例中,播放器正在加载此开始图像,以便在播放视频之前显示它: http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/videos/HF_REEL.jpg

-

在这里,我告诉玩家加载相同的图像,但在另一个域上: http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/index2.html

给定的图片是:http://www.daviddarx.com/HF_REEL.jpg

-

正如您所看到的,它不再起作用了。 我在Google上搜索并发现我理论上必须添加一个crossdomain.xml,以确保没有安全保护来避免swf从其他域加载图像。

我将这两个文件放在不同的域上,告诉swf接受来自所有*域的文件: http://www.horsform.com/crossdomain.xml

http://www.daviddarx.com/crossdomain.xml

但它仍然不起作用......你知道什么是错的吗?我错过了什么吗? 提前感谢您的帮助!

戴维斯

1 个答案:

答案 0 :(得分:1)

RTE实际上告诉你该怎么做:

  

需要策略文件,但未设置checkPolicyFile标志   当这个媒体被加载。

来自AS3帮助的

  

当您调用Loader对象的load()方法时,您可以指定   上下文参数,它是一个LoaderContext对象。该   LoaderContext类包含三个允许您定义的属性   如何使用加载内容的上下文:

     

checkPolicyFile:仅在加载图像文件时使用此属性   (不是SWF文件)。为其他域中的图像文件指定此项   而不是包含Loader对象的文件。如果设置了这个   如果属性为true,则Loader将检查原始服务器的a   跨域策略文件(请参阅网站控制(跨域策略)   文件))。如果服务器授予Loader域的权限,   Loader域中SWF文件的ActionScript可以访问数据   加载的图像。换句话说,您可以使用Loader.content   获取对表示的Bitmap对象的引用的属性   加载的图像,或BitmapData.draw()方法来访问像素   从加载的图像。

因此,您需要将LoaderContext实例的checkPolicyFile标记设置为true作为Loader#load方法的参数

类似的东西:

var loader : Loader = new Loader();
loader.load( new URLRequest( 'http://www.daviddarx.com/HF_REEL.jpg' ), new LoaderContext( true ) );