1449f933-70e7-4ce7-a941-b99b49db0959.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. "use strict";
  2. cc._RF.push(module, '1449fkzcOdM56lBuZtJ2wlZ', 'Facade');
  3. // lightMVC/core/Facade.ts
  4. "use strict";
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.Facade = void 0;
  7. var ViewManager_1 = require("./manager/ViewManager");
  8. var Constants_1 = require("./Constants");
  9. var CommandManager_1 = require("./manager/CommandManager");
  10. var ModelManager_1 = require("./manager/ModelManager");
  11. var FrameworkCfg_1 = require("./FrameworkCfg");
  12. var Facade = /** @class */ (function () {
  13. function Facade() {
  14. }
  15. Facade.getInstance = function () {
  16. return this._instance;
  17. };
  18. /**
  19. * 初始化框架配置
  20. * @param {boolean} debug 是否是调试状态
  21. * @param {cc.Size} designResolution 设计分辨率
  22. * @param {boolean} fitHeight 是否高适配
  23. * @param {boolean} fitWidth 是否宽适配
  24. */
  25. Facade.prototype.init = function (debug, designResolution, fitHeight, fitWidth) {
  26. if (Facade._isInit) {
  27. console.warn("框架已经初始化,不需要重复初始化。");
  28. return;
  29. }
  30. Facade._isInit = true;
  31. FrameworkCfg_1.default.DEBUG = debug;
  32. FrameworkCfg_1.default.DESIGN_RESOLUTION = designResolution;
  33. FrameworkCfg_1.default.FIT_HEIGHT = fitHeight;
  34. FrameworkCfg_1.default.FIT_WIDTH = fitWidth;
  35. };
  36. /**
  37. * 运行场景
  38. * @param {{new(): BaseMediator}} mediator 场景mediator类型,类类型。
  39. * @param {{new(): BaseScene}} view 场景mediator类型,类类型。
  40. * @param {Object} data 自定义的任意类型透传数据。(可选)
  41. * @param {()=>void} cb 加载完成回调.
  42. */
  43. Facade.prototype.runScene = function (mediator, view, data, cb) {
  44. if (Facade._isInit) {
  45. ViewManager_1.ViewManager.getInstance().__runScene__(mediator, view, data, cb);
  46. }
  47. else {
  48. console.warn("框架没有初始化,请先调用init接口进行初始化。");
  49. }
  50. };
  51. Facade.prototype.loadTexture = function (name) {
  52. return new Promise(function (resolve) {
  53. var viewPathList = name.split('/');
  54. var bundleRes = viewPathList[0];
  55. var viewPath = "";
  56. for (var i = 1; i < viewPathList.length; i++) {
  57. if (i < viewPathList.length - 1) {
  58. viewPath += viewPathList[i] + "/";
  59. }
  60. else {
  61. viewPath += viewPathList[i];
  62. }
  63. }
  64. // console.log("loadTexture: ",viewPath);
  65. cc.assetManager.loadBundle(bundleRes, function (err, bundle) {
  66. bundle.load(viewPath, cc.SpriteFrame, function (err, spriteFrame) {
  67. if (err) {
  68. console.log("err", err);
  69. }
  70. else {
  71. resolve(spriteFrame);
  72. }
  73. });
  74. });
  75. });
  76. };
  77. /**
  78. * 运行分包场景
  79. * @param bundleRes 分包名
  80. * @param sceneName 场景名
  81. * @param progress 加载进度
  82. * @param cb 加载成功回调
  83. */
  84. Facade.prototype.runBundleScene = function (bundleRes, sceneName, progress) {
  85. var _this = this;
  86. cc.assetManager.loadBundle(bundleRes, function (err, bundle) {
  87. if (progress) {
  88. bundle.preloadScene(sceneName, progress.bind(_this), function (res) {
  89. cc.director.loadScene(sceneName);
  90. });
  91. }
  92. else {
  93. cc.director.loadScene(sceneName);
  94. }
  95. });
  96. };
  97. /**
  98. * 返回上一场景
  99. * @returns {boolean}是否存在上一个场景
  100. */
  101. Facade.prototype.backScene = function () {
  102. return ViewManager_1.ViewManager.getInstance().__backScene__();
  103. };
  104. /**
  105. * 打开view界面,弹出界面
  106. * @param {{new(): BaseMediator}} mediator 界面mediator类型,类类型。
  107. * @param {{new(): BaseView}} view view 场景mediator类型,类类型。
  108. * @param {Object} data 自定义的任意类型透传数据。(可选)
  109. * @param {boolean} hasShowBlackBg 弹框是否有黑色背景(可选)
  110. * @param {()=>void} cb 加载完成回调.
  111. */
  112. Facade.prototype.popView = function (mediator, view, data, hasShowBlackBg, cb) {
  113. if (hasShowBlackBg === void 0) { hasShowBlackBg = false; }
  114. ViewManager_1.ViewManager.getInstance().__showView__(mediator, view, data, Constants_1.OPEN_VIEW_OPTION.OVERLAY, 0, cb, hasShowBlackBg);
  115. };
  116. /**
  117. * 创建view层,此接口用于初始不会被关闭和再次打开的常驻界面,所以它也不会受到pooView影响和管理。
  118. * @param {{new(): BaseMediator}} mediator 界面mediator类型,类类型。
  119. * @param {{new(): BaseView}} view view 场景mediator类型,类类型。
  120. * @param {number} zOrder ui层级
  121. * @param {Object} data 自定义的任意类型透传数据。(可选)
  122. * @param {boolean} hasShowBlackBg 弹框是否有黑色背景(可选)
  123. * @param {()=>void} cb 加载完成回调.
  124. */
  125. Facade.prototype.addLayer = function (mediator, view, zOrder, data, hasShowBlackBg, cb) {
  126. if (hasShowBlackBg === void 0) { hasShowBlackBg = false; }
  127. ViewManager_1.ViewManager.getInstance().__showView__(mediator, view, data, Constants_1.OPEN_VIEW_OPTION.LAYER, zOrder, cb, hasShowBlackBg);
  128. };
  129. /**
  130. * 撤销命令
  131. * @param {{new (): BaseCommand}} command 命令对象
  132. * @param {Object} body 命令参数
  133. */
  134. Facade.prototype.__undoCommand__ = function (command, body) {
  135. CommandManager_1.default.getInstance().__undoCommand__(command, body);
  136. };
  137. /**
  138. * 注册数据model
  139. * @param {{new (): BaseModel}} model
  140. */
  141. Facade.prototype.registerModel = function (model) {
  142. ModelManager_1.default.getInstance().registerModel(model);
  143. };
  144. /**
  145. * 获取model对象
  146. * @param {{new (): BaseModel}} model
  147. */
  148. Facade.prototype.getModel = function (model) {
  149. return ModelManager_1.default.getInstance().getModel(model);
  150. };
  151. /** 实例对象 */
  152. Facade._instance = new Facade();
  153. /** 框架是否被初始化 */
  154. Facade._isInit = false;
  155. return Facade;
  156. }());
  157. exports.Facade = Facade;
  158. /** 导入到全局属性mvc中的对外接口和属性等api */
  159. (window).mvc = {
  160. appFacade: Facade.getInstance(),
  161. };
  162. cc._RF.pop();