[AS3]as3.0加载json数据和xml数据之间的实例对比(2)
MyLoad.as packageload { importflash.events.EventDispatcher; importflash.events.ProgressEvent; importflash.events.Event; importevents.MyEvent;//引入自定义事件 importorg.qlq.json.JSON;//引入json包 impo
MyLoad.as
- package load
- {
- import flash.events.EventDispatcher;
- import flash.events.ProgressEvent;
- import flash.events.Event;
- import events.MyEvent;//引入自定义事件
- import org.qlq.json.JSON;//引入json包
- import flash.net.URLLoader;
- import flash.net.URLRequest;
- import flash.xml.*;
- /**
- * 加载外部文档类
- * 接受json 和xml 数据 完成后发送给文档类
- *
- * @author hayiban
- */
- //以下是加载json的方法
- public class MyLoad extends EventDispatcher
- {
- public function loadJson(url:String):void {
- var loader:URLLoader = new URLLoader();
- loader.load(new URLRequest(url));
- loader.addEventListener(ProgressEvent.PROGRESS, jsonProgress);
- loader.addEventListener(Event.COMPLETE,jsonComplete);
- }
- private function jsonProgress(e:ProgressEvent):void {
- //loading监控加载外部的json文件进度
- }
- private function jsonComplete(e:Event):void {
- var obj:Object = new Object();
- var jsonEvent:MyEvent = new MyEvent();
- obj = JSON.decode(URLLoader(e.target).data);
//解码json文档成为object类型,相反的方法JSON.encode- jsonEvent.getJson = obj;
- dispatchEvent(jsonEvent);//加载完成后向文档类发送
- }
- //----------------------------------------------------------
- //以下是加载xml的方法
- public function loadXml(url:String):void {
- var loader:URLLoader = new URLLoader();
- loader.load(new URLRequest(url));
- loader.addEventListener(ProgressEvent.PROGRESS, xmlProgress);
- loader.addEventListener(Event.COMPLETE,xmlComplete);
- }
- private function xmlProgress(e:ProgressEvent):void {
- //loading xml
- }
- private function xmlComplete(e:Event):void {
- var xml:XML = XML(e.target.data);//加载xml文档内容转成xml
- var arr:Array = new Array();//定义数组
- var xmlEvent:MyEvent = new MyEvent();
- for (var i:int = 0; i < xml.type.length(); i++ ) {
- //用循环方法遍历xml文档里的内容
- for (var j:int = 0; j < xml.type[i].child.length(); j++ ) {
- arr.push(xml.type[i].@title);
- arr.push(xml.type[i].child[j].@name);
- arr.push(xml.type[i].child[j].@sex);
- arr.push(xml.type[i].child[j].@love);
- arr.push(xml.type[i].child[j].@qq);
- }
- }
- xmlEvent.getXml = arr;
- dispatchEvent(xmlEvent);//发送
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...