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

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

时间:2012-09-13 16:06bbs.9ria.com
Main.as package { importflash.display.Sprite; importflash.events.Event; importload.MyLoad; importevents.MyEvent; importflash.text.TextField; importflash.system.System; /** *文档类 *本实例涉及的知识有

Main.as

  1. package   
  2. {  
  3. import flash.display.Sprite;  
  4. import flash.events.Event;  
  5. import load.MyLoad;  
  6. import events.MyEvent;  
  7. import flash.text.TextField;  
  8. import flash.system.System;  
  9. /**  
  10. * 文档类  
  11. * 本实例涉及的知识有自定义事件,事件发送,调用外部xml,json,以及基本的类和方法的使用  
  12. * 通过加载外部json 或者xml 文档,实现swf文件和数据库连接  
  13. * 通过这个小实例可以看出json和xml 的大致用法和区别,在本实例中,json略比xml更方便  
  14. * 关于他两的具体比较可见http://baike.baidu.com/view/136475.htm  
  15. * json的包在lib中   
  16. * @author hayiban   
  17. */  
  18. public class Main extends Sprite   
  19. {  
  20. private var jsonTxt:TextField;//成员变量  
  21. private var xmlTxt:TextField;  
  22. public function Main():void   
  23. {  
  24. System.useCodePage = true;//处理中文乱码  
  25. if (stage) init();//初始化  
  26. else addEventListener(Event.ADDED_TO_STAGE, init);  
  27. }  
  28.  
  29. private function init(e:Event = null):void   
  30. {  
  31. removeEventListener(Event.ADDED_TO_STAGE, init);  
  32. //文本框  
  33. jsonTxt = new TextField();  
  34. this.jsonTxt.x = 25;  
  35. this.jsonTxt.y = 20;  
  36. this.jsonTxt.border = true;  
  37. this.jsonTxt.width = 450;  
  38. this.jsonTxt.height = 170;  
  39. addChild(this.jsonTxt);  
  40. this.xmlTxt = new TextField();  
  41. this.xmlTxt.x = 25;  
  42. this.xmlTxt.y = 210;  
  43. this.xmlTxt.border = true;  
  44. this.xmlTxt.width = 450;  
  45. this.xmlTxt.height = 170;  
  46. addChild(this.xmlTxt);  
  47. //json 接受  
  48. var jsonLoad:MyLoad = new MyLoad();  
  49. jsonLoad.loadJson("json.txt");//传递路径  
  50. jsonLoad.addEventListener(MyEvent.HAYIBAN_EVENT, jsonHandler);  
  51. //xml 接受  
  52. var xmlLoad:MyLoad = new MyLoad();  
  53. xmlLoad.loadXml("xml.xml");//传递路径  
  54. xmlLoad.addEventListener(MyEvent.HAYIBAN_EVENT,xmlHandler);  
  55. }  
  56. private function jsonHandler(e:MyEvent):void {  
  57. //接收并显示Json数据  
  58. var obj:Object = e.getJson;  
  59. var str:String="Json数据:\n";  
  60. for (var i:* in obj) {  
  61. str += "职位:"+obj[i].title + "\n";  
  62. for (var j:* in obj[i].child ) {  
  63. str += "---姓名:"+obj[i].child[j].name + "->性别:"+obj[i].child[j]

    .sex+"-
    >爱好:"+obj[i].child[j].love+"->扣扣:"+obj[i].child[j].qq+"\n";  
  64. this.jsonTxt.text = str;  
  65. }  
  66. }  
  67. }  
  68. private function xmlHandler(e:MyEvent):void {  
  69. //接收并显示xml数据  
  70. //xml数据也可以,做成和上面json一样的显示格式  
  71. var arr:Array = e.getXml;  
  72. var str:String="xml数据:\n";  
  73. //for each(var i:* in arr) {  
  74. //str += i;  
  75. //if (i=="程序员"||i=="策划") {  
  76. //str += "\n";  
  77. //}  
  78. //this.xmlTxt.text = str;  
  79. //}  
  80. for (var j:int = 0; j < arr.length;j++ ) {  
  81.  
  82. if (arr[j]=="程序员" || arr[j]=="策划") {  
  83. str +="\n"+arr[j]+":";  
  84. }else {  
  85. str += "--"+arr[j];  
  86. }  
  87. this.xmlTxt.text = str;  
  88. }  
  89. }  
  90. }  

热门文章推荐

请稍候...

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

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