var _local4:Object;
var _local3:String = Protocol.concat(_arg1, _arg2);
if ((this._eventList[_local3] is Function)){
this._event.dispatchEvent(new Event(_local3));
} else {
_local4 = Protocol.lookupProtocol(_arg1, _arg2);
Helper.alert("[response]接口没有注册UI回调方法:", Protocol.getProtocolDescription(_local4["request"]));
};
}
接收到网络数据后,会调用dispatch(_arg1:uint, _arg2:uint),如果eventlist注册了处理器,就分发该数据。
视图会调用data.call.
public function call(_arg1:Object, _arg2:Function, _arg3:Array, _arg4:Boolean=true):void{
if (this._sock.connected == false){
this._view.tip2.showAlert(DataBaseLang.connected);
return;
};
var _local5:int = _arg1["module"];
var _local6:int = _arg1["action"];
if (this.hasNotAllow(_local5, _local6)){
return;
};
if (false == _arg4){
this.addNotAllow(_local5, _local6);
};
if ((_arg2 is Function)){
this.patchBase(_local5, _local6, this.patchHandler(_local5, _local6, _arg2));
};
Helper.recordInteraction(Helper.REQUEST, _local5, _local6, _arg3);
this.netCall(_local5, _local6, _arg1["request"], _arg3);
}
patchHandler返回一个函数
private function patchHandler(_arg1:uint, _arg2:uint, _arg3:Function):Function{
var modId:* = _arg1;
var funId:* = _arg2;
var callback:* = _arg3;
return (function (_arg1:Event):void{
if (!Protocol.keepAlive(modId, funId)){
cancelPatchBase(modId, funId);
};
callback();
});
}
public function patch(_arg1:Object, _arg2:Function):void{
var _local3:int = _arg1["module"];
var _local4:int = _arg1["action"];
this.patchBase(_local3, _local4, this.patchHandler(_local3, _local4, _arg2));
Protocol.addWired(_arg1);
}
为data.event添加或移除listener。
private function patchBase(_arg1:uint, _arg2:uint, _arg3:Function):void{
var _local4:String = Protocol.concat(_arg1, _arg2);
if ((this._eventList[_local4] is Function)){
this.cancelPatchBase(_arg1, _arg2);
};
this._eventList[_local4] = _arg3;
this._event.addEventListener(_local4, _arg3);
}
public function cancelPatch(_arg1:Object):void{
var _local2:int = _arg1["module"];
var _local3:int = _arg1["action"];
Protocol.removeWired(_local2, _local3);
this.cancelPatchBase(_local2, _local3);
}
private function cancelPatchBase(_arg1:uint, _arg2:uint):void{
var _local3:String = Protocol.concat(_arg1, _arg2);
var _local4:Function = this._eventList[_local3];
if ((_local4 is Function)){
this._event.removeEventListener(_local3, _local4);
};
}
应该控制器来识别事件,然后再调用view中相应的方法,改变屏幕中的显示。