package { import flash.display.Bitmap; import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.events.Event; import flash.net.URLRequest; /** * Abstract base class to be used to load an image to process. */ public class graphic_flex_image_effects_07_Flex_AbstractImageLoader extends Sprite { protected var _loadedBitmap:Bitmap; /** * Constructor. Initiates load of image. * * @param path The path to the image to load. */ public function graphic_flex_image_effects_07_Flex_AbstractImageLoader(path:String) { loadImage(path); } /** * Loads of image. * * @param imagePath The path to the image to load. */ private function loadImage(imagePath:String):void { var loader:Loader = new Loader(); // just checks for success; a more robust class should also check for failures loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); loader.load(new URLRequest(imagePath)); } /** * Handler for when image loads successfully. * * @param event Event dispatched by LoaderInfo. */ private function onImageLoaded(event:Event):void { var loaderInfo:LoaderInfo = event.target as LoaderInfo; _loadedBitmap = loaderInfo.content as Bitmap; runPostImageLoad(); } /** * Abstract method that is called when image completes load and is ready * to be processed. This should be overridden by child classes. */ protected function runPostImageLoad():void {} } }