响应龙城的倡议,这两天在看关于as3网络通信的内容,进度较慢,琐碎之事太多,下个学期我请假一个学期做论文,时间会集中些。
先发一个根据黑羽的书中例子写的网络XML数据读取,教程正在总结,随后发布。
我把代码加了注释,源文件和代码先发布。
- package {
- import Flash.display.Sprite;
- import flash.events.Event;
- import flash.net.URLLoader;
- import flash.net.URLLoaderDataFormat;
- import flash.net.URLRequest;
- import flash.text.TextField;
- //创建类
- public class Readrss extends Sprite{
- //声明动态文本对象,也可以说是Readrss类的实例属性 title_txt
- private var title_txt:TextField;
- //类的构造函数
- public function Readrss(){
- //rss的地址,注意必须能成功连接internet才能测试
- var targetURL:String = "http://feed.feedsky.com/qiexing";
- //构建通信请求对象
- var rssrequest:URLRequest = new URLRequest(targetURL);
- //构建URLloader对象
- var rssvariables:URLLoader = new URLLoader();
- //设置数据格式为文本格式
- rssvariables.dataFormat = URLLoaderDataFormat.TEXT;
- //注册侦听器,数据加载完触发
- rssvariables.addEventListener(Event.COMPLETE,completeHandler);
- //使用异常捕获
- try{
- trace("加载中....");
- //发送数据请求
- rssvariables.load(rssrequest);
- }
- catch(error:Error){
- trace("不能加载这个RSS数据源" + error);
- }
- //生成动态文本框的实例,用来显示内容
- title_txt = new TextField();
- //设置文本框的属性 autoSize
- title_txt.autoSize = "left";
- //添加文本框实例到显示列表
- addChild(title_txt);
-
- }
- //事件处理函数,注意参数
- private function completeHandler(event:Event):void{
- //event.target即是rssvariables,数据格式是String类型,通过XML构造函数实现转换
- trace(event.target.data is String);
- var resultXML = new XML(event.target.data);
- //把xml实例的title生成XMLList实例
- var titleList:XMLList = resultXML.channel.item.title;
- //把所有的标题在动态文本框中输出
- for each(var rsstitle:XML in titleList){
- title_txt.appendText("*" + rsstitle + "\n");
- }
- }
- }
- }
复制代码
源文件下载:
readRSS.7z
(5.48 KB, 下载次数: 164)
|