package com.diverted.messaging { public class Tubes { //listeners object private static var listeners:Object = {}; //send message to all listeners public static function send( obj:Object ):void { for each ( var iter:Object in listeners ){ iter( obj ); } } //send message to a named listener public static function sendTo( receiver:String , obj:Object ):void { if( Tubes.listeners[ receiver ] ){ Tubes.listeners[ receiver ]( obj ); } } //add a listener by name public static function add( name:String , obj:Object ):void { Tubes.listeners[ name ] = obj; } //remove a listener public static function remove( name:String ):void { delete Tubes.listeners[ name ]; } //remove all listeners public static function removeAll():void { Tubes.listeners = {}; } } }