import mx.utils.Delegate; class com.rLuce.utils.EventManager { /* * Event Manager: Ryan Luce * Methods: * addEvent : Adds an event to the list * doEvent : Calls all functions related to that Event, and passes arguments if necessary * * */ /* START EVENT .....*/ private static var Events:Array = []; //Standard addeventlistener just like mx.event.EventDispatcher public static function addEventListener(eventName:String, mcRef:MovieClip, fncRef:Function):Void { if(Events[eventName].length > 0) { var tempArr = []; tempArr[0] = mcRef; tempArr[1] = fncRef; tempArr[2] = Delegate.create(mcRef, fncRef); Events[eventName].push(tempArr); } else { var tempArr = []; tempArr[0] = mcRef; tempArr[1] = fncRef; Events[eventName] = []; Events[eventName].push(tempArr); } } public static function removeEventListener(eventName:String, mcRef:MovieClip, fncRef:Function):Void { for(var a:Number = 0; a < Events[eventName].length; a++) if(Events[eventName][a][1] == mcRef && Events[eventName][a][2] == fncRef) Events[eventName].slice(a,a); } public static function dispatchEvent(eventName:String, obj:Object):Void { if(!arrArgs) arrArgs = []; if(Events[eventName].length > 0) for(var a = 0; a < Events[eventName].length; a++) Events[eventName][a][3](obj); } }