All pastes #354319 Raw Edit

Stuff

public text v1 · immutable
·published 2007-02-13 22:21 UTC
rendered paste body
class com.buho.core.Event {

	private var _objEvent:Object;

	private function Event(){
		_objEvent = new Object();
	}

	public function addListener(type:String,obj:Object){
		
		if(_objEvent[type]==null) _objEvent[type]=new Array();
		
		_objEvent[type].push({type:type,obj:obj});
		
 	}
	
	
	public function removeListener(str:String,obj:Object):Boolean{
		
		for(var i=_objEvent[str].length-1;i>-1;i--){
			
			var objReal = _objEvent[str][i].obj ;
			
			if(obj==objReal) {
				_objEvent[str].splice(i,1);
				return true; 
			}
			
		}
		return false ;
	}

	private function callEvent(str:String){
		
		for(var i=_objEvent[str].length-1;i>-1;i--){
			var obj:Object = _objEvent[str][i].obj ;
			var type:String = _objEvent[str][i].type ;
			
			var argument = {type:type,target:this};
			
			if(obj instanceof Function) obj.apply(this,[argument]);
			else obj[type](argument);
			
		}
		
		
 	}
	
	public function removeEventAll(){
		_objEvent = new Object();
	}
	
	
	function toString(){
		return "Event";
	}

}