# Need Loader tips

**URL:** <https://forum.kirupa.com/t/need-loader-tips/306080>\
**Category:** Uncategorized\
**Created:** [March 9, 2010, 9:51am UTC](https://forum.kirupa.com/t/need-loader-tips/306080 "2010-03-09T09:51:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Farzher](https://avatars.discourse-cdn.com/v4/letter/f/67e7ee/32.png) [@Farzher](https://forum.kirupa.com/u/Farzher)\
**Post date:** [March 9, 2010, 9:51am UTC](https://forum.kirupa.com/t/need-loader-tips/306080/1 "2010-03-09T09:51:11Z")

</div>

Hi i’m trying to make a class that loads an image easily for me, and runs a callback function when its loaded.

I’m not sure if it would make sense to use a static function for this or create an instance of the class, I did it both ways. I’m wondering what ways better or if theres an even better way to do it.

LoaderPro:

```auto
package com.farzher {
	
	import flash.display.Loader;
	import flash.events.Event;
	import flash.net.URLRequest;
	
	public class LoaderPro {
		
		private var loader:Loader;
		private var callback:Function;
		private var data:Object;
		
		public function LoaderPro(src:String, callback:Function, data:Object = null) {
			this.callback = callback;
			if (data) {
				this.data = new Object();
				for (var i:String in data) {
					this.data* = data*;
				}
			}
			loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			loader.load(new URLRequest(src));
		}
		
		private function onComplete(e:Event):void {
			if(data) {
				callback(loader, data);
			} else {
				callback(loader);
			}
			loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
			loader = null;
		}
		
	}
}

```

StaticLoader:

```auto
package com.farzher {
	
	import flash.display.Loader;
	import flash.events.Event;
	import flash.net.URLRequest;
	
	public class StaticLoader {
		
		public static function load(src:String, callback:Function, data:Object = null) {
			var variables:Object;
			
			if (data) {
				variables = new Object();
				for (var i:String in data) {
					variables* = data*;
				}
			}
			
			var loader:Loader = new Loader();
			
			function onComplete():void {
				if(data) {
					callback(loader, data);
				} else {
					callback(loader);
				}
				loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
			}
			
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			
			loader.load(new URLRequest(src));
		}
		
	}
}

```

They both work but i’m not sure if LoaderPro could get garbage collected before it loads the image, doing something like this without referencing it in a variable.

```auto
new LoaderPro(xml.image[0].src, sup);

```

any tips welcome.
