d41fb07e-7bfd-432d-bd7c-ca9355367fa3.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. cc._RF.push(module, 'd41fbB+e/1DLb18ypNVNn+j', 'UIUtils');
  3. // lightMVC/util/UIUtils.ts
  4. "use strict";
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.UIContainer = void 0;
  7. var UIUtils = /** @class */ (function () {
  8. function UIUtils() {
  9. }
  10. /***
  11. * 生成子节点的唯一标识快捷访问
  12. * @param node
  13. * @param map
  14. */
  15. UIUtils.createSubNodeMap = function (node, map) {
  16. var children = node.children;
  17. if (!children) {
  18. return;
  19. }
  20. for (var t = 0, len = children.length; t < len; ++t) {
  21. var subChild = children[t];
  22. map.set(subChild.name, subChild);
  23. UIUtils.createSubNodeMap(subChild, map);
  24. }
  25. };
  26. /***
  27. * 返回当前节点所有节点,一唯一标识存在
  28. * @param node 父节点
  29. * @return {Object} 所有子节点的映射map
  30. */
  31. UIUtils.seekAllSubView = function (node) {
  32. var map = new Map();
  33. UIUtils.createSubNodeMap(node, map);
  34. return new UIContainer(map);
  35. };
  36. return UIUtils;
  37. }());
  38. exports.default = UIUtils;
  39. var UIContainer = /** @class */ (function () {
  40. function UIContainer(nodesMap) {
  41. this._uiNodesMap = nodesMap;
  42. }
  43. /**
  44. * 根据节点名字获取节点
  45. * @param {string}name 节点名字
  46. * @return {cc.Node}
  47. */
  48. UIContainer.prototype.getNode = function (name) {
  49. return this._uiNodesMap.get(name);
  50. };
  51. /**
  52. * 根据节点名字和组件类型获取组件对象
  53. * @param {string}name 节点名字
  54. * @param {{prototype: cc.Component}}com 组建类型
  55. * @return {cc.Component}
  56. */
  57. UIContainer.prototype.getComponent = function (name, com) {
  58. var node = this._uiNodesMap.get(name);
  59. if (node) {
  60. return node.getComponent(com);
  61. }
  62. return null;
  63. };
  64. return UIContainer;
  65. }());
  66. exports.UIContainer = UIContainer;
  67. cc._RF.pop();