Flash AS3教程:ImageLoader类

所属分类: 媒体动画 / Flash教程 阅读数: 930
收藏 0 赞 0 分享
前面学习了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怎么给模糊图层制作卷页动画?flash中制作了一个朦胧的图层将画面遮盖,然后在制作一个将朦胧图层慢慢翻卷起来露出画卷的效果,该怎么制作呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作线条渐现的美女效果?

flash怎么制作线条渐现的美女效果?想要制作一段动画,先显示人物线条,然后再慢慢显示美女,该怎么办呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作一个足球飞奔入门的动画?

flash怎么制作一个足球飞奔入门的动画?flash中想要制作一个足球按照路径飞入球门的动画,主要用到引导线,关键是设置物体到路径的起点和终点,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作围绕中心旋转的文字动画效果?

flash怎么制作围绕中心旋转的文字动画效果?flash中制作动画很简单,今天我们就来看看制作一个简单的补间为动画实例教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作不锈钢质感的金属文字?

flash怎么制作不锈钢质感的金属文字?flash在制作文字的时候,想要给文字添加一些效果,比如金属质感的文字,该怎么制作呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash怎么画一个逼真的红色1号台球?

Flash怎么画一个逼真的红色1号台球?flsah中想要绘制一个红色的台球,该怎么绘制呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下
收藏 0 赞 0 分享

flash8怎么绘制渐变色的花朵?

flash8怎么绘制渐变色的花朵?flash8中想要绘制一朵花,该怎么画呢?下面我们就来看看详细的教程,绘制出来的花朵效果很好,请看下文详细介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

flash CS6属性面板怎么使用? flash属性面板的详细介绍

flash CS6属性面板怎么使用?flash制作动画很方便,今天我们就来介绍最基础的知识,关于flash属性面板的详细介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

flash中怎么制作打印字幕的文字动画效果?

flash中怎么制作打印字幕的文字动画效果?flash中想要制作打印文字的动画效果,该怎么制作呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下
收藏 0 赞 0 分享

flash CS6中元件名和实例名有什么区别?

flash CS6中元件名和实例名有什么区别?很多刚接触flash的同学都搞不清元件名和实例名的区别,导致自己作品的代码失效,下面我们就来详细介绍一下,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多