0

我需要在“xx.com”服务器上托管我的全 Flash SWF 站点。但所有图形和声音都必须从“yy.com”服务器加载。

在我的 AS3 代码中,所有数据都由绝对地址加载,例如:

http://yy.com/file1.jpg
http://yy.com/file2.jpg

如果我在本地运行 swf,无论是在 Flash 创作工具中,还是从本地 .html 文件,或者通过双击 swf,它都可以正常工作。所有数据均从“yy.com”下载,网站正常显示。

如果我将 swf 上传到“xx.com”并将其加载到那里,它将无法正常工作。

我创建了以下crossdomain.xml文件

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" />
</cross-domain-policy> 

并上传于

http://yy.com/crossdomain.xml

结果很奇怪:它似乎开始从“yy.com”加载 1-2 张图片,但随后就停止了。无论是否使用crossdomain.xml文件,都会发生此行为。

我正在尝试做的事情以某种方式可以实现吗?我的问题是 xx.com 的空间非常有限,所以我可以上传 swf 和/或 html,但不能上传实际数据(有很多 MB)。

4

3 回答 3

1

尝试将其用作您的 crossdomain.xml 文件。这是我使用的一个,它一直对我有用。它有额外的 allow-http-request-headers-from 节点

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" />
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
于 2012-03-29T21:04:42.510 回答
1

确保你在你的 swf 中设置了 allow all

Security.allowDomain("*");
于 2012-03-29T22:07:55.903 回答
0

解决方案是将 LoaderContext 添加到Loader对象的加载函数中,如下所示:

context = new LoaderContext(true);
loader.load( new URLRequest(name),  context );

只有在那时才检查crossdomain.xml文件。

于 2012-03-30T09:52:55.097 回答