2012-03-29 60 views
0

是否可以从Google Maps API加载外部XML文件而不会收到安全沙箱错误?AS3:从AS3加载外部Google Maps 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提要?

回答

0

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

但是,Flash会让你直接访问图像和mp3等,所以你可以调用谷歌的静态街景和API来获取图像,但获取数据是另一回事。

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

Google Maps API不支持JSONP。

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