应用思考-教育技术论坛

标题: 利用as3 实现对网络XML数据的读取 [打印本页]

作者: etthink    时间: 2007-12-2 15:50
标题: 利用as3 实现对网络XML数据的读取
响应龙城的倡议,这两天在看关于as3网络通信的内容,进度较慢,琐碎之事太多,下个学期我请假一个学期做论文,时间会集中些。
先发一个根据黑羽的书中例子写的网络XML数据读取,教程正在总结,随后发布。
我把代码加了注释,源文件和代码先发布。
  1. package {
  2.         import flash.display.Sprite;
  3.         import flash.events.Event;
  4.         import flash.net.URLLoader;
  5.         import flash.net.URLLoaderDataFormat;
  6.         import flash.net.URLRequest;
  7.         import flash.text.TextField;
  8.         //创建类
  9.         public class Readrss extends Sprite{
  10.                 //声明动态文本对象,也可以说是Readrss类的实例属性 title_txt
  11.                 private var title_txt:TextField;
  12.                 //类的构造函数
  13.                 public function Readrss(){
  14.                         //rss的地址,注意必须能成功连接internet才能测试
  15.                         var targetURL:String = "http://feed.feedsky.com/qiexing";
  16.                         //构建通信请求对象
  17.                         var rssrequest:URLRequest = new URLRequest(targetURL);
  18.                         //构建URLloader对象
  19.                         var rssvariables:URLLoader = new URLLoader();
  20.                         //设置数据格式为文本格式
  21.                         rssvariables.dataFormat = URLLoaderDataFormat.TEXT;
  22.                         //注册侦听器,数据加载完触发
  23.                         rssvariables.addEventListener(Event.COMPLETE,completeHandler);
  24.                         //使用异常捕获
  25.                         try{
  26.                                 trace("加载中....");
  27.                                 //发送数据请求
  28.                                 rssvariables.load(rssrequest);
  29.                                 }
  30.                         catch(error:Error){
  31.                                 trace("不能加载这个RSS数据源" + error);
  32.                                 }
  33.                         //生成动态文本框的实例,用来显示内容
  34.                         title_txt = new TextField();
  35.                         //设置文本框的属性 autoSize
  36.                         title_txt.autoSize = "left";
  37.                         //添加文本框实例到显示列表
  38.                         addChild(title_txt);
  39.                        
  40.                         }
  41.                         //事件处理函数,注意参数
  42.                         private function completeHandler(event:Event):void{
  43.                                 //event.target即是rssvariables,数据格式是String类型,通过XML构造函数实现转换
  44.                                 trace(event.target.data is String);
  45.                                 var resultXML = new XML(event.target.data);
  46.                                 //把xml实例的title生成XMLList实例
  47.                                 var titleList:XMLList =  resultXML.channel.item.title;
  48.                                 //把所有的标题在动态文本框中输出
  49.                                 for each(var rsstitle:XML in titleList){
  50.                                         title_txt.appendText("*" + rsstitle + "\n");
  51.                                         }
  52.                                 }
  53.                 }
  54.         }
复制代码

源文件下载:
(, 下载次数: 135)
作者: 龙城flash    时间: 2007-12-2 19:46
楼主辛苦了。
作者: jen    时间: 2007-12-28 21:27
:lol 支持,希望有更多的新作




欢迎光临 应用思考-教育技术论坛 (http://www.etthink.com/) Powered by Discuz! X3.4