Flash AS3教程:ImageLoader类
Flash AS3教程:ImageLoader类
发布时间:2016-12-21 来源:查字典编辑
摘要:前面学习了FlashAS3教程:ClassLoader类和BitmapData的使用。跟ClassLoader差不多,但是不同的是,他是读取...

前面学习了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;

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Flash教程学习
热门Flash教程学习
网页设计子分类