当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash AS3教程:ImageLoader类

ActionScript
FLASH AS3与网页JS参数值传递的问题
Flash AS3的parameters对象处理网页参数
Flash教程 认识Flash ActionScript的环境
Flash ActionScript编程基础
Flash AS3代码实现鼠标跟随喷枪涂鸦效果
falsh 跨域调用配置
Flash AS3.0 实例教程 喷泉动画特效
AS3 Loader与URLLoader的比较
ColorTransform类调整显示对象的颜色值
Flash AS3 快速制作烟雾动画
Flash AS3 制作文字飞出动画
ActionScript 学习小心得
ActionScript3.0读取网页FlashVars中的参数的问题
通过实例学习AS3.0:案例三
通过实例学习Flash AS3.0:案例四
通过实例学习Flash AS3.0:案例五
通过实例学习Flash AS3.0:案例六
Flash教程:认识Flash ActionScript的环境
Flash as入门(1):认识AS面板
Flash as入门(3):AS基本语法

ActionScript 中的 Flash AS3教程:ImageLoader类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 86 ::
收藏到网摘: n/a

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