当前位置: 移动技术网 > IT编程>UI设计>设计软件 > Flash AS3教程:ImageLoader类

Flash AS3教程:ImageLoader类

2019年03月23日  | 移动技术网IT编程  | 我要评论
前面学习了flash as3教程:classloader类和bitmapdata的使用。
跟classloader差不多,但是不同的是,他是读取图片的bitmapdata,然后可以多次
new bitamap(imagesloader.data)
进行图片调用

多次使用图片,直接用byteloader也可以,但是他加载进来的是字节,还要通过loadbytes
但是加载进来的,却是一张图片,无法重复使用
虽说要用就loadbytes一下,就是一张图片,但是实际起来还是比较麻烦
那么这个类,就是帮助你把这些步骤全部省下,直接把bitmapdata拿出来
你只需要,用一个引用值接住他
var bd:bitmapdata = imageloader.data;
然后每次使用这张图片的时候
new bitamap(imagesloader.data)
就行了

该类的具体用法就不详讲了,前面加过的classloader类,在这个类里面都有,而且两个类连代码都没改什么。。
就是少了getclass,hasclass,而多了data属性。相信应该不是很难看懂

示例:

code:
import index.base.net.imageloader;

var il:imageloader = new imageloader;

il.load("http://www.xiaos8.com/uploads/200804/02_230327_1.jpg");

il.addeventlistener(event.complete,fun);

function fun(e:event){
addchild(new 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 class imageloader extends eventdispatcher{

public var url:string;
public var loader:loader;
public var data:bitmapdata;

//构造函数
public function imageloader(obj:object = null,lc:loadercontext = null) {
if(obj != null){
if(obj is bytearray){
loadbytes(obj as bytearray,lc);
}else if(obj is string){
load(obj as string,lc);
}else{
throw new error("参数错误,构造函数第一参数只接受bytearray或string");
}
}
}

//加载
public function load(_url:string,lc:loadercontext = null):void{
url = _url;
loader = new loader;
loader.load(new urlrequest(url),lc);
addevent();
}

//加载字节
public function loadbytes(bytes:bytearray,lc:loadercontext = null):void{
loader = new loader;
loader.loadbytes(bytes,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;
}
}
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网