/** * Listener * Basic listener object * * @author Zeh Fernando * @version 1.0.0 - 2/jul/2006 - First version */ class zeh.events.BasicListener { private static var _listeners:Array; // List of listener objects /** * There's no constructor. */ public function BasicListener () { trace ("This is an static class and should not be instantiated.") } /** * Adds an object to the listeners list * * @param p_obj Object Object to be called */ public static function addListener(p_obj:Object): Void { if (_listeners == undefined) _listeners = new Array(); _listeners.push(p_obj); } /** * Removes an object from the listeners list * * @param p_obj Object Object to be removed from the list */ public static function removeListener(p_obj:Object): Void { for (var i:Number = 0; i< _listeners.length; i++) { if (_listeners[i] == p_obj) { _listeners.splice(i, 1); i--; } } } /** * Broadcasts a message (calling a given function) on all the existing listeners * * @param messageTopic Object Function/event name (ie, "onWhateverChanged") */ public static function broadcastMessage(messageTopic:String): Void { for (var i:Number = 0; i< _listeners.length; i++) { _listeners[i][messageTopic](); } } }