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:
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:
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.
new LoaderPro(xml.image[0].src, sup);
any tips welcome.