4b185f99676bcd2afe1b952253bebe45b104a72f.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. System.register(["cc"], function (_export, _context) {
  2. "use strict";
  3. var _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _cc, node_extends, _class, _crd, cc;
  4. // eslint-disable-next-line @typescript-eslint/naming-convention
  5. function N(node_, force_b_) {
  6. var _node_extends$node_ex;
  7. if (force_b_ === void 0) {
  8. force_b_ = true;
  9. }
  10. if (!(node_ != null && node_.isValid)) {
  11. return null;
  12. }
  13. var node_extend = (_node_extends$node_ex = node_extends.node_extends_map.get(node_)) != null ? _node_extends$node_ex : null;
  14. if (!node_extend && force_b_) {
  15. node_extend = new node_extends(node_);
  16. node_extends.node_extends_map.set(node_, node_extend);
  17. }
  18. return node_extend;
  19. }
  20. return {
  21. setters: [function (_cc2) {
  22. _cclegacy = _cc2.cclegacy;
  23. __checkObsolete__ = _cc2.__checkObsolete__;
  24. __checkObsoleteInNamespace__ = _cc2.__checkObsoleteInNamespace__;
  25. _cc = _cc2;
  26. }],
  27. execute: function () {
  28. _crd = true;
  29. _cclegacy._RF.push({}, "6ad1amQ7hpEvIsDrio8/oVQ", "Nodes", undefined);
  30. cc = __checkObsoleteInNamespace__(_cc);
  31. node_extends = class node_extends {
  32. constructor(node_) {
  33. /* --------------- public --------------- */
  34. this.label = void 0;
  35. this.sprite = void 0;
  36. this.ui_opacity = void 0;
  37. this.ui_transform = void 0;
  38. this.animation = void 0;
  39. this.edit_box = void 0;
  40. this.rich_text = void 0;
  41. this.layout = void 0;
  42. this.progress_bar = void 0;
  43. this.slider = void 0;
  44. this.toggle = void 0;
  45. /* --------------- private --------------- */
  46. /** 持有节点 */
  47. this._node = void 0;
  48. /** 节点渲染次序 */
  49. // eslint-disable-next-line @typescript-eslint/naming-convention
  50. this._order_n = 0;
  51. this._node = node_;
  52. this._node.components.forEach(v => {
  53. if (v instanceof cc.Label) {
  54. this.label = v;
  55. } else if (v instanceof cc.Sprite) {
  56. this.sprite = v;
  57. } else if (v instanceof cc.UIOpacity) {
  58. this.ui_opacity = v;
  59. } else if (v instanceof cc.UITransform) {
  60. this.ui_transform = v;
  61. } else if (v instanceof cc.Animation) {
  62. this.animation = v;
  63. } else if (v instanceof cc.EditBox) {
  64. this.edit_box = v;
  65. } else if (v instanceof cc.RichText) {
  66. this.rich_text = v;
  67. } else if (v instanceof cc.Layout) {
  68. this.layout = v;
  69. } else if (v instanceof cc.ProgressBar) {
  70. this.progress_bar = v;
  71. } else if (v instanceof cc.Slider) {
  72. this.slider = v;
  73. } else if (v instanceof cc.Toggle) {
  74. this.toggle = v;
  75. }
  76. });
  77. }
  78. /* --------------- static --------------- */
  79. /** 节点扩展数据 */
  80. /** 节点渲染次序 */
  81. // eslint-disable-next-line @typescript-eslint/naming-convention
  82. get order_n() {
  83. return this._order_n;
  84. }
  85. set order_n(value_n_) {
  86. this._set_order_n(value_n_);
  87. }
  88. /** 宽 */
  89. get width() {
  90. return this.ui_transform.width;
  91. }
  92. set width(value_n_) {
  93. this.ui_transform.width = value_n_;
  94. }
  95. /** 高 */
  96. get height() {
  97. return this.ui_transform.height;
  98. }
  99. set height(value_n_) {
  100. this.ui_transform.height = value_n_;
  101. }
  102. /** 透明度 */
  103. get opacity() {
  104. return this.ui_opacity.opacity;
  105. }
  106. set opacity(value_n_) {
  107. this.ui_opacity.opacity = value_n_;
  108. }
  109. /** 锚点 */
  110. get anchor() {
  111. return this.ui_transform.anchorPoint;
  112. }
  113. set anchor(value_v2_) {
  114. this.ui_transform.anchorPoint = value_v2_;
  115. }
  116. /* ------------------------------- 功能 ------------------------------- */
  117. /* ------------------------------- get/set ------------------------------- */
  118. _set_order_n(value_n_) {
  119. if ( // 未改变渲染顺序
  120. this._order_n === value_n_ || // 节点失效
  121. !this._node.isValid) {
  122. return;
  123. }
  124. /** 父节点层级数据 */
  125. var parent = N(this._node.parent);
  126. if (!parent) {
  127. this._node.once(cc.Node.EventType.PARENT_CHANGED, () => {
  128. // 延迟一帧避免 children 数据未更新
  129. setTimeout(() => {
  130. this._set_order_n(value_n_);
  131. }, 0);
  132. }, this);
  133. return;
  134. } // 更新渲染顺序
  135. this._order_n = value_n_;
  136. /** 距离上次更新的时间 */
  137. var time_since_last_update_n = Date.now() - node_extends._order_update_time_n; // 添加任务
  138. node_extends._order_update_task_fs.push(() => {
  139. // (节点/父节点)失效
  140. if (!this._node.isValid || !parent._node.isValid || this._node.parent !== parent._node) {
  141. return;
  142. }
  143. /** 同级节点 */
  144. var node_as = [...parent._node.children].sort((va, vb) => {
  145. var _N$_order_n, _N, _N$_order_n2, _N2;
  146. return ((_N$_order_n = (_N = N(va, false)) == null ? void 0 : _N._order_n) != null ? _N$_order_n : 0) - ((_N$_order_n2 = (_N2 = N(vb, false)) == null ? void 0 : _N2._order_n) != null ? _N$_order_n2 : 0);
  147. }); // 更新渲染顺序
  148. node_as.forEach((v, k_n) => {
  149. v.setSiblingIndex(k_n);
  150. });
  151. }); // 已经准备更新
  152. if (node_extends.order_update_timer !== null) {
  153. return;
  154. } // 小于间隔时间更新
  155. if (node_extends.order_update_timer === null && time_since_last_update_n < cc.game.frameTime) {
  156. node_extends.order_update_timer = setTimeout(() => {
  157. // 清理定时器数据
  158. node_extends.order_update_timer = null; // 更新时间
  159. node_extends._order_update_time_n = Date.now(); // 更新渲染顺序
  160. node_extends._order_update_task_fs.splice(0, node_extends._order_update_task_fs.length).forEach(v_f => v_f());
  161. }, cc.game.frameTime - time_since_last_update_n);
  162. return;
  163. } // 延迟一帧避免同帧内使用 children 下标获取节点不正确
  164. setTimeout(() => {
  165. // 更新时间
  166. node_extends._order_update_time_n = Date.now(); // 更新渲染顺序
  167. node_extends._order_update_task_fs.splice(0, node_extends._order_update_task_fs.length).forEach(v_f => v_f());
  168. }, 0);
  169. }
  170. };
  171. _class = node_extends;
  172. node_extends.node_extends_map = new Map();
  173. /** 渲染顺序更新倒计时 */
  174. node_extends.order_update_timer = null;
  175. /** 渲染顺序更新时间 */
  176. node_extends._order_update_time_n = 0;
  177. /** 更新任务 */
  178. node_extends._order_update_task_fs = [];
  179. (function (_N3) {
  180. var order_refresh_interval_ms_n = _N3.order_refresh_interval_ms_n = cc.game.frameTime;
  181. function clear() {
  182. // 清理定时器
  183. if (node_extends.order_update_timer) {
  184. clearTimeout(node_extends.order_update_timer);
  185. node_extends.order_update_timer = null;
  186. } // 清理节点数据
  187. node_extends.node_extends_map.clear();
  188. }
  189. _N3.clear = clear;
  190. })(N || (N = {})); // 切换场景后自动清理
  191. cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, N.clear, void 0);
  192. _export("default", N);
  193. _cclegacy._RF.pop();
  194. _crd = false;
  195. }
  196. };
  197. });
  198. //# sourceMappingURL=4b185f99676bcd2afe1b952253bebe45b104a72f.js.map