开启左侧

利用as3 实现对网络XML数据的读取

[复制链接]
etthink 发表于 2007-12-2 15:50:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
响应龙城的倡议,这两天在看关于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.         }
复制代码

源文件下载:
readRSS.7z (5.48 KB, 下载次数: 164)
参与人数 1威望 +2 收起 理由
龙城flash + 2 好文章 共享

查看全部评分总评分 : 威望 +2

学教育技术,上教育技术论坛!http://www.etthink.com

精彩评论2

正序浏览
龙城flash 发表于 2007-12-2 19:46:48 | 显示全部楼层
楼主辛苦了。
欢迎大家多发帖,参与讨论,增进彼此了解。
jen 发表于 2007-12-28 21:27:44 | 显示全部楼层
:lol 支持,希望有更多的新作
欢迎大家多发帖,参与讨论,增进彼此了解。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


11关注

462粉丝

7846帖子

推荐阅读更多+
会员达人更多+
广告位

最新信息

更多+

关注我们:教育技术人

官方微信

官方微博

教育技术热线:

13955453231

学教育技术,上教育技术论坛!

教育技术论坛征稿范围:教育技术应用案例、教程文章、优秀作品等。

Email:sf@etthink.com

Copyright   ©2007-2026  应用思考-教育技术论坛  Powered by©Discuz!  技术支持:且行资源    ( 皖ICP备10014945号-4 )