跟ClassLoader差不多但是区别是他是读取图片BitmapData然后可以多次
Bitamap(ImagesLoader.data)
进行图片
多次使用图片直接用ByteLoader也可以但是他加载进来是字节还要通过loadBytes
但是加载进来却是张图片无法重复使用
虽说要用就loadBytes下就是张图片但是实际起来还是比较麻烦
那么这个类就是帮助你把这些步骤全部省下直接把BitmapData拿出来
你只需要用个引用值接住他
var bd:BitmapData = ImageLoader.data;
然后每次使用这张图片时候
Bitamap(ImagesLoader.data)
就行了
该类具体使用方法就不详讲了前面加过ClassLoader类在这个类里面都有而且两个类连代码都没改什么
就是少了getClass,hasClass而多了data属性相信应该不是很难看懂
举例:
CODE:
import index.base.net.ImageLoader;
var il:ImageLoader = ImageLoader;
il.load("http://www.xiaos8.com/uploads/200804/02_230327_1.jpg");
il.addEventListener(Event.COMPLETE,fun);
function fun(e:Event){
addChild( Bitmap(il.data));
trace(il.loader)
trace(il.url)
}
源代码:
CODE:
package index.base.net{
import flash.display.Loader;
import flash.display.BitmapData;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.EventDispatcher;
import flash.system.LoaderContext;
public ImageLoader extends EventDispatcher{
public var url:String;
public var loader:Loader;
public var data:BitmapData;
//构造
public function ImageLoader(obj:Object = null,lc:LoaderContext = null) {
(obj != null){
(obj is ByteArray){
loadBytes(obj as ByteArray,lc);
} (obj is String){
load(obj as String,lc);
}{
throw Error("参数构造第参数只接受ByteArray或String");
}
}
}
//加载
public function load(_url:String,lc:LoaderContext = null):void{
url = _url;
loader = Loader;
loader.load( URLRequest(url),lc);
addEvent;
}
//加载字节
public function loadBytes(s:ByteArray,lc:LoaderContext = null):void{
loader = Loader;
loader.loadBytes(s,lc);
addEvent;
}
//开始侦听
private function addEvent:void{
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressFun);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeFun);
}
//结束侦听
private function delEvent:void{
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,progressFun);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeFun);
}
//加载成功发布成功事件
private function completeFun(e:Event):void {
data = loader.content["bitmapData"];
delEvent;
dispatchEvent(e);
}
//加载过程
private function progressFun(e:ProgressEvent):void{
dispatchEvent(e);
}
//清除
public function clear:void{
loader.unload;
loader = null;
data = null;
}
}
}
最新评论