·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0加载json数据和xml数据之间的实例对比(2)

时间:2012-09-13 16:06bbs.9ria.com
MyLoad.as packageload { importflash.events.EventDispatcher; importflash.events.ProgressEvent; importflash.events.Event; importevents.MyEvent;//引入自定义事件 importorg.qlq.json.JSON;//引入json包 impo

MyLoad.as

  1. package load   
  2. {  
  3. import flash.events.EventDispatcher;  
  4. import flash.events.ProgressEvent;  
  5. import flash.events.Event;  
  6. import events.MyEvent;//引入自定义事件  
  7. import org.qlq.json.JSON;//引入json包  
  8. import flash.net.URLLoader;  
  9. import flash.net.URLRequest;  
  10. import flash.xml.*;  
  11. /**  
  12. * 加载外部文档类  
  13. * 接受json 和xml 数据 完成后发送给文档类  
  14. *  
  15. * @author hayiban  
  16. */  
  17. //以下是加载json的方法  
  18. public class MyLoad extends EventDispatcher  
  19. {  
  20. public function loadJson(url:String):void {  
  21. var loader:URLLoader = new URLLoader();  
  22. loader.load(new URLRequest(url));  
  23. loader.addEventListener(ProgressEvent.PROGRESS, jsonProgress);  
  24. loader.addEventListener(Event.COMPLETE,jsonComplete);  
  25. }  
  26. private function jsonProgress(e:ProgressEvent):void {  
  27. //loading监控加载外部的json文件进度  
  28. }  
  29. private function jsonComplete(e:Event):void {  
  30. var obj:Object = new Object();  
  31. var jsonEvent:MyEvent = new MyEvent();  
  32. obj = JSON.decode(URLLoader(e.target).data);

    //解码json文档成为object类型,相反的方法JSON.encode  
  33. jsonEvent.getJson = obj;  
  34. dispatchEvent(jsonEvent);//加载完成后向文档类发送  
  35. }  
  36. //----------------------------------------------------------  
  37. //以下是加载xml的方法  
  38. public function loadXml(url:String):void {  
  39. var loader:URLLoader = new URLLoader();  
  40. loader.load(new URLRequest(url));  
  41. loader.addEventListener(ProgressEvent.PROGRESS, xmlProgress);  
  42. loader.addEventListener(Event.COMPLETE,xmlComplete);  
  43. }  
  44. private function xmlProgress(e:ProgressEvent):void {  
  45. //loading xml  
  46. }  
  47. private function xmlComplete(e:Event):void {  
  48. var xml:XML = XML(e.target.data);//加载xml文档内容转成xml  
  49. var arr:Array = new Array();//定义数组  
  50. var xmlEvent:MyEvent = new MyEvent();  
  51. for (var i:int = 0; i < xml.type.length(); i++ ) {  
  52. //用循环方法遍历xml文档里的内容  
  53. for (var j:int = 0; j < xml.type[i].child.length(); j++ ) {  
  54. arr.push(xml.type[i].@title);  
  55. arr.push(xml.type[i].child[j].@name);  
  56. arr.push(xml.type[i].child[j].@sex);  
  57. arr.push(xml.type[i].child[j].@love);  
  58. arr.push(xml.type[i].child[j].@qq);  
  59. }  
  60. }  
  61. xmlEvent.getXml = arr;  
  62. dispatchEvent(xmlEvent);//发送  
  63. }  
  64. }  

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器