Flash AS3教程:ImageLoader类

所属分类: 媒体动画 / Flash教程 阅读数: 984
收藏 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 AS 入门 as自定义函数

如果有一个功能或者一段代码要经常使用,则可以把它写成自定义函数,在用到的时候调用它。使用函数是为了简化编程的负担,减少代码量和提高效率
收藏 0 赞 0 分享

Flash AS 入门教程 事件处理函数及画线语句

我们学过在按扭或者影片剪辑上添加事件,这些事件也可以很方便地写在帧上,使用起来比较方便,有时也能起到简化脚本的作用。这些写在帧上的事件在软件中是位置是内置类影片MovieClip事件
收藏 0 赞 0 分享

Flash AS 入门教程 圆和椭圆函数的应用

Flash AS 入门教程 圆和椭圆函数的应用,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash AS 入门教程 碰撞检测hitTest函数

hitTest函数是用来检测两个物体或目标是否重叠和相交,如果相交或重叠,就执行相应的动作,这对于我们做一些互动的动画和游戏是非常有用。比如在做点鞭炮、射击等的动画时,就可以用hitTest的方法
收藏 0 赞 0 分享

Flash AS 入门教程 乱数排列(随机数)方法

选取不重复的随机数(或者叫乱数),在flash的编程中经常都会用到,这里简单介绍下,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash AS 入门教程 setInterval函数应用举例

setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象
收藏 0 赞 0 分享

Flash AS 入门教程 三个实例讲解

画正玄图象,由外部输入控制起点横坐标、震幅和跨度,把文字和下面的mc的位置都分别作任意的排列
收藏 0 赞 0 分享

Flash AS 入门教程 多维数组和双重循环使用介绍

我们用到了一个mc对另外一个mc的遮罩。它的原理是:在作为遮罩片的mc中,复制部分小方块mc,并且随机放置这些小方块mc。当然,这样的随机放置不是任意的,必须满足两个条件:放置的位置不重复;能够完全遮罩图形
收藏 0 赞 0 分享

Flash AS 入门教程 loadMovie应用举例 多画面与画中画实现

加载外部文件命令loadMovie()可以在播放 SWF 文件的同时,将外部的 SWF 文件或 JPEG 文件加载到 Flash Player 中,使您可以同时显示几个 SWF 文件,或者在几个SWF 文件之间切换
收藏 0 赞 0 分享

Flash AS 入门教程 调入外部文本和加载外部mp3文件

在Flash制作时,有时候为了更灵活、方便,我们可以直接调入外部文本文件。要修改时只要修改记事本里的文本并保存,无需打开Flash源文件对其修改
收藏 0 赞 0 分享
查看更多