如何解决在动作脚本中打开URL并加载数据
| 如何在ActionScript 3中从Web加载资源(如JSON或XML文档)? 谢谢解决方法
您将需要一个跨域策略文件来访问不在您自己的域上托管的数据。
您无法加载变量或XML数据
换成另一部的Flash电影
域。例如,Flash电影
从加载
http://www.yourserver.com/flashmovie.swf
可以访问位于的数据
http://www.yourserver.com/data.txt。
文本文件位于
与SWF相同的域。
但是,尝试从
http://www.NotMyServer.com/data.txt
将失败,并且没有错误消息
显示。加载动作将导致
出现警告对话框。
注意:此安全功能不
影响正在播放的Flash电影
独立投影仪。
来源:Flash电影的跨域策略
设置完成后,您可以通过如下所示的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解析器
, 有很多方法可以实现这一目标,并且这里已经以各种方式回答了几次该问题。
尝试搜索Flash Php通信。
要加载XML文档,请查找URLLoader类。
对于JSON,您可以查看通过SWFObject传递的变量,也可以查看Zend Amf Server。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。