WEB开发网
开发学院图形图像Flash Flash AS3教程:ImageLoader类 阅读

Flash AS3教程:ImageLoader类

 2008-06-05 11:22:14 来源:WEB开发网   
核心提示:前面学习了Flash AS3教程:ClassLoader类和BitmapData的使用,跟ClassLoader差不多,Flash AS3教程:ImageLoader类,但是不同的是,他是读取图片的BitmapData,而多了data属性,相信应该不是很难看懂示例: CODE:import index.base.net

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

Tags:Flash AS 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接