54ad913f8f33e9758005e0e4795f4a028dc3e61f.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3", "__unresolved_4", "__unresolved_5"], function (_export, _context) {
  2. "use strict";
  3. var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, Button, Component, easing, EventHandler, js, Node, Tween, tween, UITransform, Vec2, Vec3, Utils, Logger, uiMgr, eventEmitter, initAutoBindings, _dec, _class, _crd, ccclass, property, BaseExp;
  4. function _reportPossibleCrUseOfUtils(extras) {
  5. _reporterNs.report("Utils", "../../utils/Utils", _context.meta, extras);
  6. }
  7. function _reportPossibleCrUseOfLogger(extras) {
  8. _reporterNs.report("Logger", "../../extend/Logger", _context.meta, extras);
  9. }
  10. function _reportPossibleCrUseOfuiMgr(extras) {
  11. _reporterNs.report("uiMgr", "../manager/UIManager", _context.meta, extras);
  12. }
  13. function _reportPossibleCrUseOfeventEmitter(extras) {
  14. _reporterNs.report("eventEmitter", "../event/EventEmitter", _context.meta, extras);
  15. }
  16. function _reportPossibleCrUseOfinitAutoBindings(extras) {
  17. _reporterNs.report("initAutoBindings", "../../extend/AutoBind", _context.meta, extras);
  18. }
  19. return {
  20. setters: [function (_unresolved_) {
  21. _reporterNs = _unresolved_;
  22. }, function (_cc) {
  23. _cclegacy = _cc.cclegacy;
  24. __checkObsolete__ = _cc.__checkObsolete__;
  25. __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
  26. _decorator = _cc._decorator;
  27. Button = _cc.Button;
  28. Component = _cc.Component;
  29. easing = _cc.easing;
  30. EventHandler = _cc.EventHandler;
  31. js = _cc.js;
  32. Node = _cc.Node;
  33. Tween = _cc.Tween;
  34. tween = _cc.tween;
  35. UITransform = _cc.UITransform;
  36. Vec2 = _cc.Vec2;
  37. Vec3 = _cc.Vec3;
  38. }, function (_unresolved_2) {
  39. Utils = _unresolved_2.Utils;
  40. }, function (_unresolved_3) {
  41. Logger = _unresolved_3.Logger;
  42. }, function (_unresolved_4) {
  43. uiMgr = _unresolved_4.uiMgr;
  44. }, function (_unresolved_5) {
  45. eventEmitter = _unresolved_5.eventEmitter;
  46. }, function (_unresolved_6) {
  47. initAutoBindings = _unresolved_6.initAutoBindings;
  48. }],
  49. execute: function () {
  50. _crd = true;
  51. _cclegacy._RF.push({}, "f7232bGb6xDy4F0OYIYaAsF", "BaseExp", undefined);
  52. __checkObsolete__(['_decorator', 'Button', 'Component', 'easing', 'EventHandler', 'EventTouch', 'js', 'Node', 'Tween', 'tween', 'UITransform', 'Vec2', 'Vec3']);
  53. ({
  54. ccclass,
  55. property
  56. } = _decorator);
  57. _export("BaseExp", BaseExp = (_dec = ccclass('BaseExp'), _dec(_class = class BaseExp extends Component {
  58. constructor() {
  59. super(...arguments);
  60. //事件数组
  61. this.events = [];
  62. //是否允许点击空白关闭页面,默认true
  63. this.closeOnBlank = true;
  64. //是否有出场放大的动画 默认true
  65. this._hasAnim = true;
  66. this.oScale = Vec3.ZERO;
  67. this.uiBG = null;
  68. }
  69. set hasAnim(value) {
  70. if (value) {
  71. this.showAnim();
  72. }
  73. this._hasAnim = value;
  74. }
  75. onLoad() {
  76. this.events = []; //加入按钮点击
  77. this._addClickEvent(this.node); //自动绑定属性
  78. (_crd && initAutoBindings === void 0 ? (_reportPossibleCrUseOfinitAutoBindings({
  79. error: Error()
  80. }), initAutoBindings) : initAutoBindings)(this); //监听节点点击事件
  81. this.node.on(Node.EventType.TOUCH_END, this.onNodeTouchEnd, this); //背景视图
  82. this.uiBG = this.node.getChildByName("UI");
  83. if (this.uiBG) {
  84. this.oScale = this.uiBG.scale.clone();
  85. }
  86. }
  87. /**
  88. * 展示加载缓动动画
  89. */
  90. showAnim() {
  91. if (this.uiBG && this._hasAnim) {
  92. Tween.stopAllByTarget(this.uiBG);
  93. this.uiBG.scale = new Vec3(0.95, 0.95, 0.95);
  94. var scale = this.oScale;
  95. tween(this.uiBG).to(0.1, {
  96. scale: new Vec3(0.02 + scale.x, 0.02 + scale.y, 0.02 + scale.z)
  97. }, {
  98. easing: easing.backOut
  99. }).to(0.1, {
  100. scale: new Vec3(scale.x - 0.02, scale.y - 0.02, scale.z - 0.02)
  101. }, {
  102. easing: easing.backOut
  103. }).call(() => {
  104. this.uiBG.scale = this.oScale;
  105. }).start();
  106. }
  107. }
  108. /**
  109. * 节点触摸结束事件处理
  110. * @param event 触摸事件
  111. */
  112. onNodeTouchEnd(event) {
  113. var uiBG = this.node.getChildByName("UI");
  114. if (!uiBG || !this.closeOnBlank) return;
  115. var trans = this.node.getComponent(UITransform);
  116. var location = event.getUILocation();
  117. var pos = trans.convertToNodeSpaceAR(new Vec3(location.x, location.y));
  118. if (!uiBG.getComponent(UITransform).getBoundingBox().contains(new Vec2(pos.x, pos.y))) {
  119. this.close();
  120. }
  121. }
  122. /**
  123. * 关闭页面
  124. * @param cb 关闭页面的回调
  125. */
  126. close(cb) {
  127. var pagePath = this.node["_uiPath"];
  128. if (!(_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
  129. error: Error()
  130. }), Utils) : Utils).isNull(pagePath)) {
  131. (_crd && uiMgr === void 0 ? (_reportPossibleCrUseOfuiMgr({
  132. error: Error()
  133. }), uiMgr) : uiMgr).hide(pagePath, cb);
  134. } else {
  135. (_crd && Logger === void 0 ? (_reportPossibleCrUseOfLogger({
  136. error: Error()
  137. }), Logger) : Logger).log("\u8BF7\u68C0\u67E5\u8BE5: " + this.node.name + "\u9875\u9762\u8DEF\u5F84\u4FE1\u606F\uFF0C\u4E0D\u5B58\u5728");
  138. }
  139. }
  140. /**
  141. * 点击事件
  142. * @param event 事件
  143. * @param customEventData 数据
  144. */
  145. onBtnClicked(event, customEventData) {
  146. var btnName = event.target.name;
  147. if (btnName === 'close_btn') {
  148. this.close();
  149. }
  150. }
  151. /**
  152. * 是否允许添加
  153. * @param node 添加的节点
  154. */
  155. _isSkipNode(node) {
  156. if (this.node == node) {
  157. return false;
  158. }
  159. var b = node.getComponent(BaseExp);
  160. if (b) //Logger.log("跳过", b.name)
  161. return b != null;
  162. }
  163. /**
  164. * 加入点击事件
  165. * @param node 加入点击的节点
  166. */
  167. _addClickEvent(node) {
  168. if (this._isSkipNode(node)) return;
  169. for (var i = 0; i < node.children.length; i++) {
  170. var n = node.children[i];
  171. if (this._isSkipNode(n)) continue;
  172. if (n.getComponent(Button)) {
  173. this.addClickEvent(n, this.node, js.getClassName(this), "onBtnClicked", n);
  174. }
  175. this._addClickEvent(n);
  176. }
  177. }
  178. /**
  179. * 加入按钮点击事件
  180. * @param node 点击的节点
  181. * @param target 点击的对象
  182. * @param component 组建的类名
  183. * @param handler 处理的具柄
  184. * @param customEventData 传递的数据
  185. */
  186. addClickEvent(node, target, component, handler, customEventData) {
  187. var eventHandler = new EventHandler();
  188. eventHandler.target = target;
  189. eventHandler.component = component;
  190. eventHandler.handler = handler;
  191. if (customEventData) {
  192. eventHandler.customEventData = customEventData;
  193. }
  194. var clickEvents = node.getComponent(Button).clickEvents;
  195. if (clickEvents.length > 0) {
  196. (_crd && Logger === void 0 ? (_reportPossibleCrUseOfLogger({
  197. error: Error()
  198. }), Logger) : Logger).log(node.name + "\u6309\u94AE\u5DF2\u7ECF\u5B58\u5728\u7ED1\u5B9A\uFF0C\u8DF3\u8FC7\u81EA\u52A8\u7ED1\u5B9A");
  199. return;
  200. }
  201. clickEvents.push(eventHandler);
  202. } //销毁的时候注销所有的事件
  203. onDestroy() {
  204. for (var i = 0; i < this.events.length; i++) {
  205. (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
  206. error: Error()
  207. }), eventEmitter) : eventEmitter).unregister(this, this.events[i]);
  208. }
  209. } //注册事件
  210. register(type, cb) {
  211. this.events.push(type);
  212. (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
  213. error: Error()
  214. }), eventEmitter) : eventEmitter).register(this, type, cb);
  215. } //取消注册的时间
  216. unregister(type) {
  217. (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
  218. error: Error()
  219. }), eventEmitter) : eventEmitter).unregister(this, type);
  220. } //事件派发
  221. dispatch(type) {
  222. for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  223. data[_key - 1] = arguments[_key];
  224. }
  225. (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
  226. error: Error()
  227. }), eventEmitter) : eventEmitter).dispatch(type, ...data);
  228. }
  229. }) || _class));
  230. _cclegacy._RF.pop();
  231. _crd = false;
  232. }
  233. };
  234. });
  235. //# sourceMappingURL=54ad913f8f33e9758005e0e4795f4a028dc3e61f.js.map