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";
}
}