Loading images dynamically (and smoothing them).
Posted on 01. Apr, 2009 by thornyeternity in ActionScript 3 Snippets
Loading an image, setting up preloader and event listeners:
loaderThumbs = new Loader();
var request:URLRequest = new URLRequest(url); //url would be string of path or array element
configureListeners(loaderThumbs.contentLoaderInfo);
loaderThumbs.load(request);
containerSprite.addChild(loaderThumbs);
//preloading listeners
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}//configureListeners
//error loading
private function ioErrorHandler(event:IOErrorEvent):void {
//ignore but handle
}//ioErrorHandler
//preloader
private function progressHandler(event:ProgressEvent):void {
//trace(“progressHandler: bytesLoaded=” + event.bytesLoaded + ” bytesTotal=” + event.bytesTotal);
//contentPreloader.percentage_mc.scaleX = event.bytesLoaded/event.bytesTotal;
}//progressHandler
//once it has loaded do something
private function completeHandler(event:Event):void {
//do whatever
}//completeHandler
————–
Get loaded content information:
private function completeHandler(event:Event):void {
trace(myLoader.contentLoaderInfo.width);
trace(myLoader.contentLoaderInfo.height);
}//completeHandler
/*
Returns a LoaderInfo object corresponding to the object being loaded. LoaderInfo objects are shared between the Loader object and the loaded content object. The LoaderInfo object supplies loading progress information and statistics about the loaded file.
*/
————–
Draw bitmap data – set size and smoothing:
var myBitmapData:BitmapData = new BitmapData(stage.stageWidth , stage.stageHeight);
myBitmapData.draw(thumbnailsContainer.getChildAt(tempCounter));
var bmp:Bitmap = new Bitmap(myBitmapData);
bmp.smoothing = true;
mainArea.addChild(bmp);
————–
Simple smoothing of loaded image:
private function completeHandler(event:Event):void {
var bit:Bitmap = event.target.content;
if(bit != null){
bit.smoothing = true;
}
}//completeHandler


