如何在ActionScript 3中从Web加载资源(如JSON或XML文档)?
由于
答案 0 :(得分:1)
您需要拥有跨域策略文件才能访问未在您自己的域上托管的数据。
您无法加载变量或XML数据 从另一个到另一个Flash电影 域。例如,Flash电影 装载自 http://www.yourserver.com/flashmovie.swf 可以访问驻留在的数据 http://www.yourserver.com/data.txt。 文本文件位于 与SWF相同的域名。
但是,尝试从中加载数据 http://www.NotMyServer.com/data.txt 将失败,没有错误消息 显示。加载动作将导致 出现一个警告对话框。
注意:此安全功能不会 影响播放的Flash电影 独立投影仪。
来源:Cross-domain policy for Flash movies
完成设置后,您可以通过URLLoader访问XML文件,如下所示:
var XMLData:XML;
var XMLLoader:URLLoader = new URLLoader();
XMLLoader.addEventListener(Event.COMPLETE, XMLCompleteEventHandler);
XMLLoader.load(new URLRequest("http://my.xml.file"));
function XMLCompleteEventHandler(evt:Event):void
{
evt.currentTarget.removeEventListener(Event.COMPLETE, XMLCompleteEventHandler);
XMLData = new XML(evt.currentTarget.data);
}
我不确定JSON文件是否也需要跨域策略文件,但我假设如此。在任何一种情况下,您都可以通过使用一些JavaScript + ExternalInterface例程来绕过此安全检查。 AIR应用程序不需要跨域策略文件。
您可以在as3corelib
中找到JSON解析器答案 1 :(得分:0)
有很多方法可以实现这一点,这个问题已经以各种方式回答了几次。
尝试搜索Flash Php通信。
要加载XML文档,请查找URLLoader类。 对于JSON,您可以通过SWFObject查看传递变量,还可以查看Zend Amf Server。