/* Copyright (c) 2007, George Wang, neatfilm.com All rights reserved. Release under BSD License. */ // Usage: new ImageLoader( holder, url, [caller, callback]); // set callback function as public // Created: George Wang, 5 Jan 2007. package com.neatfilm.display { import flash.display.Sprite; import flash.display.DisplayObject; import flash.events.Event; import flash.events.IOErrorEvent; import flash.display.Loader; import flash.net.URLRequest; import flash.display.Bitmap; public class ImageLoader extends Loader { private var target:DisplayObject; private var url:String; private var callback:String; private var caller:*; public function ImageLoader(target:*, url:String, caller:* = undefined, callback:String = null) { // target: holder display object // url: image url // caller.callback: callback function super(); this.target = target; this.url = url; this.callback = callback; this.caller = caller; init(); } private function init():void { this.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); this.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler); var request:URLRequest=new URLRequest(this.url); this.load(request); } private function completeHandler(event:Event):void{ var image:Bitmap=Bitmap(this.content); this.target.addChild(image); if(Boolean(this.caller)) this.caller[this.callback](image); } private function ioErrorHandler(event:IOErrorEvent):void { trace('Unable to load image: '+ this.url); } } }