AS3:从AS3加载外部Google Maps XML文件,而不会导致沙盒安全性错误

时间:2012-03-29 15:19:16

标签: actionscript-3 flash

是否可以从Google Maps API加载外部XML文件而不会收到安全沙箱错误?

目前我正在使用代理,但这并不理想,因为所有API调用都将来自代理的IP而不是用户。

这是测试脚本:

Security.loadPolicyFile("https://maps.googleapis.com/crossdomain.xml");
Security.loadPolicyFile("https://maps.google.co.uk/crossdomain.xml");
Security.loadPolicyFile("http://maps.googleapis.com/crossdomain.xml") 
Security.allowDomain("*.googleapis.com"); 
Security.allowDomain("*.google.co.uk"); 

var xmlString:String ='http://maps.google.co.uk/maps/geo?q=Slack Head LA7 7AX, United Kingdom&output=xml';

var myXML:XML;

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest(xmlString));

我基本上放弃了所有的希望,我浪费了几个小时。您无法加载外部XML / RSS源似乎很奇怪?

1 个答案:

答案 0 :(得分:0)

无法直接从Flash访问XML文件而不会导致跨域脚本错误。

但是,Flash会让您直接访问图片和mp3等,这样您就可以调用Google的静态街景并映射API来获取图片,但是获取数据是另一回事。

有些网站支持JSONP,这意味着您可以使用JavaScript(使用jQuery库)来检索JSON / XML数据并将其传递给Flash对象。

Google Maps API不支持JSONP。

因此,您需要做的是在HTML中包含JavaScript Google Maps API 3库,然后从Flash调用JavaScript函数(使用ExternalInterface)从Maps API获取数据,然后您需要传递检索到的数据回到Flash。