页游通信及数据结构

MOD_XXX_BASE类定义了XXX模块的静态常量和数据包的结构,MOD_XXX类注册了数据对象与处理函数的。class SuperSubBase的子类base,在不同的文件夹下data 、view、control都有base。class SuperBase的数据有var _superSubBaseList:Object;用来保存隶属于该类的子类实例。DataBase、ControllerBase、ViewBase继承自class SuperBase

,然后再有Data、Controller、View类。mvc是如何结合起来的呢?

protected function createObjectBase(_arg1:Class, _arg2:String, _arg3:View, _arg4:Controller, _arg5:Data):Object{
            var _local6:String = this._nameHash[_arg2];
            if (null == _local6){
                _local6 = _arg2.replace(/^\[class /, "");
                _local6 = (_local6.substring(0, 1).toLowerCase() + _local6.substring(1));
                this._nameHash[_arg2] = _local6;
            };
            if (null == this._superSubBaseList[_local6]){
                this._superSubBaseList[_local6] = new (_arg1)();
                (this._superSubBaseList[_local6] as SuperSubBase).settle(_local6, _arg3, _arg4, _arg5, this);
            };
            return (this._superSubBaseList[_local6]);
        }

该函数位于 class SuperBase中,在类中添加类对象,以便集中管理。

public class Base extends SuperSubBase {

        protected var _instanceName:String;
        protected var _data:Data;
        protected var _ctrl:Controller;
        protected var _loaded:Boolean = false;

        override public function settle(_arg1:String, _arg2:View, _arg3:Controller, _arg4:Data, _arg5:SuperBase):void{
            if (null == this._data){
                this._instanceName = _arg1;
                this._data = _arg4;
                if (this._data != _arg5){
                    throw (new Error(inheritError()));
                };
                this._ctrl = this._ctrl;
            };
        }
        public function destroy():void{
            this._data.destroyObject(this._instanceName);
        }

    }

//class DataBase extends SuperBase

protected function createObject(_arg1:Class, _arg2:String=""):Object{
            _arg2 = (_arg1 + "");
            _arg2 = _arg2.replace(/Data\]$/, "");
            return (createObjectBase(_arg1, _arg2, this._view, this._ctrl, (this as Data)));
        }

//class Data中建立各种数据对象。

public function get player():PlayerData{
            return ((createObject(PlayerData) as PlayerData));
        }

public class DataBase extends SuperBase {

        protected var _ctrl:Controller;
        protected var _view:View;
        protected var _notAllowList:Object;
        protected var _sock:Socket;
        private var _host:String;
        private var _port:int;
        private var _useProxy:Boolean = false;
        protected var _onConnect:Function;
        protected var _onClose:Function;
        private var connectSucceed:Boolean = false;
        private var pack_len:int = -1;
        private var buffer:ByteArray;
        private var _event:EventDispatcher;
        private var _eventList:Object;

每个database对应一个socket。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值