软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 设计在线 > 媒体动画 > flash中实现图片的逐步加载的方法

flash中实现图片的逐步加载的方法

  flash中利用Loader.loadBytes方法和URLStream类实现图片的逐步加载内容简介:在Flash中,有Loader类,可以从外部载入一张图片(或swf文件)。但是有个不好的地方就是,不像浏览器那样一边下载一边显示。 所幸的是,Flash提供了Loader.loadBytes方法和URLStrea 在Flash中,有Loader类,可以从外部载入一张图片(或swf文件)。但是有个不好的地方就是,不像浏览器那样一边下载一边显示。

  所幸的是,Flash提供了Loader.loadBytes方法和URLStream类。

  首先,要使用URLStream类,而不是URLLoader。它们的区别就是URLLoader需要等到所有的数据下载完成之后,才能获取。而URLStream可以一边下载,一边就可以取到数据了。

  其次,Loader.loadBytes,可以直接发送数据给Loader,而不是让Loader去下载。每一次loadBytes,Loader都会丢弃以前的数据,所以在代码中使用了_data的ByteArray保存数据。

  代码如下:

package 

import flash.display.Loader; 
import flash.display.Sprite; 
import flash.display.StageAlign; 
import flash.events.ContextMenuEvent; 
import flash.events.Event; 
import flash.net.URLRequest; 
import flash.net.URLStream; 
import flash.ui.ContextMenu; 
import flash.ui.ContextMenuItem; 
import flash.utils.ByteArray; 
import flash.utils.getTimer; 
public class Main extends Sprite 
{ //liehuo..net
private var _loader:Loader = new Loader(); 
private var _urlstream:URLStream = new URLStream(); 
private var _data:ByteArray = new ByteArray(); 
public function Main():void 

var loadmenu:ContextMenuItem = new ContextMenuItem("Load image"); 
loadmenu.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.onLoadImage, false); 
this.contextMenu = new ContextMenu(); 
this.contextMenu.customItems.push(loadmenu); 
 
_urlstream.addEventListener('progress', processData); 
_urlstream.addEventListener('complete', processData); 
 
addChild(_loader); 
 
stage.align = StageAlign.TOP_LEFT; 

public function onLoadImage(e:Event):void 

_loader.unload(); 
_data.length = 0; 
var url:String = "http://files.cnblogs.com/Greatest/test.jpg.zip"; 
_urlstream.load(new URLRequest(url + "?q=" + getTimer())) 
}
= public function processData(e:Event):void 

var oldlen:int = _data.length; 
_urlstream.readBytes(_data, _data.length); 
if (_data.length > oldlen) 

_loader.loadBytes(_data); 



}

    相关阅读
    栏目导航
    推荐软件