12.2.11 加载流数据

  下面的代码使用URLStream类,从ADOBE官方网站加载Flash新闻。代码中使用ProgressEvent时间检测下载的进度。当下载数据达到一定量时,将数据用TextField文本呈现在舞台上,然后关闭URLStream对象。

var mystream:URLStream=new URLStream();

mystream.load(new URLRequest("http://www.adobe.com/products/flash/news/"));

 

//处理流加载进度事件

mystream.addEventListener(ProgressEvent.PROGRESSprohan);

//处理流加载完成事件

mystream.addEventListener(Event.COMPLETEcomphan);

 

//流加载进度侦听器函数

function prohan(pe:ProgressEvent):void{

                   trace(pe.bytesLoaded);

                   var count:uint;

                   count=3000;

         //判断加载量

         if(pe.bytesLoaded>count){

                   var tf:TextField=new TextField();

                   tf.text=pe.target.readMultiByte(count"UTF-8");

                   tf.width=550;

                   tf.height=400;

                   tf.selectable=false;

                   tf.multiline=true;

                   stage.addChild(tf);

                   pe.target.close();

         }

}

//流加载完成

function comphan(ce:Event):void{

         trace("over!");

}

程序的执行结果如图所示:

URLStream对象包含的加载数据是ByteArray类型,需要使用ByteArray的相关方法读取。在本例中,由于加载的网页采用了“UTF-8”的编码方式,所以可以直接使用readMultiByte()方法输出字符串。对于一些动态内容,URLStream加载时,不能获得文件的大小,只能计算已加载的数据量。如果网络阻塞或者连接极其缓慢,则加载即使很长时间都不能成功,也难以捕获消息。为了防止异常,应设定一个计时器追踪URLStream的加载情况。

虽然可以使用URLStream读取远程的JPG图像,但是由于JPG图像时压缩存储的,在未经解码之前,不能直接作为像素值,因此也无法写入BitmapData并创建屏幕显示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值