微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在动作脚本中打开URL并加载数据

如何解决在动作脚本中打开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 举报,一经查实,本站将立刻删除。