import SDKTransceiver from "../SDKNetwork/SDKTransceiver"; import SDKWebDashBoradController from "../SDKController/SDKWebDashBoradController"; import SDKPacketHandler from "../SDKNetwork/SDKPacketHandler"; import SDKContrllerManager from "../SDKController/SDKContrllerManager"; import * as SDKControllerConst from "../SDKConst/SDKControllerConst"; import SDKControllerBase from "../SDKController/SDKControllerBase"; import * as SDKLogicsCore from "../SDKLogics/SDKLogicsCore"; import * as SDKRegistCommand from "../SDKConst/SDKRegistCommand"; export default class SDKApp { private static _instance: SDKApp; private _transceiver: SDKTransceiver; private _packetHandler: SDKPacketHandler; /**进入游戏场景 */ private _isEnter: boolean = false; constructor() { if (SDKApp._instance) { throw console.error("SDKApp object is had already!"); } SDKApp._instance = this; } public static instance(): SDKApp { if (!SDKApp._instance) { SDKApp._instance = new SDKApp(); } return SDKApp._instance; } public init(): void { this._packetHandler = new SDKPacketHandler(); this._transceiver = new SDKTransceiver(); this._transceiver.packetHandler = this._packetHandler; } private initEvents(): void { if(SDKLogicsCore.parameterVo.isTeacher()){ this.transceiver.sendMsg(SDKRegistCommand.TEACH_MODLE_CHANGE,SDKLogicsCore.controllState.teachingMode,false); this.transceiver.sendMsg(SDKRegistCommand.NOTIFY_WATCH_CONTROLLER,SDKLogicsCore.controllState.controllerId,false); } if(SDKLogicsCore.parameterVo.isOberverTeacher()){ this.transceiver.sendMsg(SDKRegistCommand.TEACH_MODLE_REQUEST,null,false); this.transceiver.sendMsg(SDKRegistCommand.WATCH_CONTROLLER_REQUEST,null,false); } } private initController(): void{ let controller: SDKControllerBase = SDKContrllerManager.instance().getController(SDKControllerConst.WEB_DASHBORAD); if (!controller) { controller = new SDKWebDashBoradController(); SDKContrllerManager.instance().addController(SDKControllerConst.WEB_DASHBORAD, controller); } } /** * 初始化视图 */ public initView():void{ if (this._isEnter) { return; } this._isEnter = true; this.initController(); this.initEvents(); console.log("SDK initView......",new Date().getTime()); } public get transceiver(): SDKTransceiver { return this._transceiver; } public get packetHandler(): SDKPacketHandler { return this._packetHandler; } }