flash播放器:Flash AS3教程:ImageLoader类

  前面学习了Flash AS3教程:ClassLoader类和BitmapData使用

  跟ClassLoader差不多但是区别他是读取图片BitmapData然后可以多次

   Bitamap(ImagesLoader.data)

  进行图片

  多次使用图片直接用ByteLoader也可以但是他加载进来是字节还要通过loadBytes

  但是加载进来却是张图片无法重复使用

  虽说要用就loadBytes就是张图片但是实际起来还是比较麻烦

  那么这个类就是帮助你把这些步骤全部省下直接把BitmapData拿出来

  你只需要个引用值接住他

  var bd:BitmapData = ImageLoader.data;

  然后每次使用这张图片时候

   Bitamap(ImagesLoader.data)

  就行了

  该类具体使用方法就不详讲了前面加过ClassLoader类在这个类里面都有而且两个类连代码都没改什么

  就是少了getClass,hasClass而多了data属性相信应该不是很难看懂

  举例:

  CODE:

import index.base.net.ImageLoader;
var il:ImageLoader = ImageLoader;
il.load("http://www.xiaos8.com/uploads/200804/02_230327_1.jpg");
il.addEventListener(Event.COMPLETE,fun);
function fun(e:Event){
    addChild( 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 ImageLoader extends EventDispatcher{
          
          public var url:String;
          public var loader:Loader;
          public var data:BitmapData;
          
          //构造
          public function ImageLoader(obj:Object = null,lc:LoaderContext = null) {
               (obj != null){
                    (obj is ByteArray){
                          loadBytes(obj as ByteArray,lc);
                    } (obj is String){
                          load(obj as String,lc);
                    }{
                          throw Error("参数构造参数只接受ByteArray或String");
                    }
               }
          }
          
          //加载
          public function load(_url:String,lc:LoaderContext = null):void{
               url = _url;
               loader = Loader;
               loader.load( URLRequest(url),lc);
               addEvent;
          }
          
          //加载字节
          public function loadBytes(s:ByteArray,lc:LoaderContext = null):void{
               loader = Loader;
               loader.loadBytes(s,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:  flashplayer flash播放器

延伸阅读

最新评论

发表评论