Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private var _listeners:Object = {};
- public function Broadcaster(){
- }
- public function addEventListener(eventName:String, listenerObj:Object, methodName:String):Void{
- if(_listeners[eventName] == undefined){
- _listeners[eventName] = new Array();
- }
- _listeners[eventName].push({listenerObj:listenerObj, methodName:methodName});
- }
- public function broadcastEvent(eventName:String, data:Object):Void{
- var eventQueue:Array = new Array();
- for(var i:Number = (listeners.length - 1); i >= 0; i--){
- var method:String = eventName;
- if(_listeners[eventName][i].methodName != undefined){
- method = _listeners[eventName][i].methodName;
- }
- eventQueue.push({listenerObj:_listeners[eventName][i].listenerObj, method:method})
- }
- for(var i:Number = (listeners.length - 1); i >= 0; i--){
- eventQueue[ii].listenerObj[eventQueue[ii].method](data);
- }
- }
- public function removeEventListener(eventName:String, listenerObj:Object, methodName:String):Void{
- if(_listeners[eventName] == null){ return; }
- var listeners:Array = _listeners[eventName];
- for(var i:Number = (listeners.length - 1); i >= 0; i--){
- if(listeners[i].listenerObj == listenerObj && listeners[i].methodName == methodName){
- _listeners[eventName].splice(i, 1); //splice the member, not the local copy
- return;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement