宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3的URLLoader与URLStream加载数据

2016-10-13 00:16:48 点击量:10 标签: 收藏本文

a、URLLoader与URLStream

区别就是URLLoader需要等到所有的数据下载完成之后,才能获取,而URLStream可以一边下载,一边就可以取到数据了

数据:e.target.data stream.readBytes(byte,byte.length);

b、Loader.loadBytes,可以直接发送数据给Loader,而不是让Loader去下载。每一次loadBytes,Loader都会丢弃以前的数据

  1. _loader = new Loader(); 
  2. this.addChild(_loader); 
  3.  
  4. private function progress(e:ProgressEvent):void{ 
  5.     var count:int = 50000
  6.     if (stream.connected){ 
  7.         stream.readBytes(byte, byte.length);  //若是完成事件stream.readBytes(byte);   
  8.     } 
  9.     if(e.bytesLoaded > count){ 
  10.         //stream.close(); 
  11.     } 
  12.     trace(byte.length); 
  13.     showImage(); 
  14.  
  15. public function showImage():void { 
  16.     if (stream.connected){ 
  17.         stream.readBytes(byte, byte.length); 
  18.     } 
  19.     _loader.unload(); 
  20.     _loader.loadBytes(byte); 

加载完成事件

  1. public function streamComplete(e:Event):void {   
  2.     stream.removeEventListener(Event.COMPLETE, streamComplete);   
  3.     var byte:ByteArray = new ByteArray();   
  4.     stream.readBytes(byte);   
  5.        
  6.     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderHandler);   
  7.     loader.loadBytes(ba);   
  8.     stream.close();   
  9. }   
  10. private function onLoaderHandler(e:Event):void{   
  11.     e.target.removeEventListener(Event.COMPLETE,onLoaderHandler);   

2、URLStream对象包含的加载数据是ByteArray类型,需要使用ByteArray的相关方法读取。

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

2.可以使用URLStream读取远程的图像,需将urlstream字节数指定到bytearray中,在通过loader.loadBytes()加载获取

3.PNG可以使用PNGDeconder.decodeImage(bytes)转换BitmapData数据

JPG图像时压缩存储的,在未经解码之前,不能直接作为像素值,因此也无法写入BitmapData

(图片是JPG格式,但它不一定是支持渐进加载的,PS中保存图片时有选项。
Loader不管是否加载完成都可以加入显示列表)

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室