123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3", "__unresolved_4", "__unresolved_5"], function (_export, _context) {
- "use strict";
- 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;
- function _reportPossibleCrUseOfUtils(extras) {
- _reporterNs.report("Utils", "../../utils/Utils", _context.meta, extras);
- }
- function _reportPossibleCrUseOfLogger(extras) {
- _reporterNs.report("Logger", "../../extend/Logger", _context.meta, extras);
- }
- function _reportPossibleCrUseOfuiMgr(extras) {
- _reporterNs.report("uiMgr", "../manager/UIManager", _context.meta, extras);
- }
- function _reportPossibleCrUseOfeventEmitter(extras) {
- _reporterNs.report("eventEmitter", "../event/EventEmitter", _context.meta, extras);
- }
- function _reportPossibleCrUseOfinitAutoBindings(extras) {
- _reporterNs.report("initAutoBindings", "../../extend/AutoBind", _context.meta, extras);
- }
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- _decorator = _cc._decorator;
- Button = _cc.Button;
- Component = _cc.Component;
- easing = _cc.easing;
- EventHandler = _cc.EventHandler;
- js = _cc.js;
- Node = _cc.Node;
- Tween = _cc.Tween;
- tween = _cc.tween;
- UITransform = _cc.UITransform;
- Vec2 = _cc.Vec2;
- Vec3 = _cc.Vec3;
- }, function (_unresolved_2) {
- Utils = _unresolved_2.Utils;
- }, function (_unresolved_3) {
- Logger = _unresolved_3.Logger;
- }, function (_unresolved_4) {
- uiMgr = _unresolved_4.uiMgr;
- }, function (_unresolved_5) {
- eventEmitter = _unresolved_5.eventEmitter;
- }, function (_unresolved_6) {
- initAutoBindings = _unresolved_6.initAutoBindings;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "f7232bGb6xDy4F0OYIYaAsF", "BaseExp", undefined);
- __checkObsolete__(['_decorator', 'Button', 'Component', 'easing', 'EventHandler', 'EventTouch', 'js', 'Node', 'Tween', 'tween', 'UITransform', 'Vec2', 'Vec3']);
- ({
- ccclass,
- property
- } = _decorator);
- _export("BaseExp", BaseExp = (_dec = ccclass('BaseExp'), _dec(_class = class BaseExp extends Component {
- constructor() {
- super(...arguments);
- //事件数组
- this.events = [];
- //是否允许点击空白关闭页面,默认true
- this.closeOnBlank = true;
- //是否有出场放大的动画 默认true
- this._hasAnim = true;
- this.oScale = Vec3.ZERO;
- this.uiBG = null;
- }
- set hasAnim(value) {
- if (value) {
- this.showAnim();
- }
- this._hasAnim = value;
- }
- onLoad() {
- this.events = []; //加入按钮点击
- this._addClickEvent(this.node); //自动绑定属性
- (_crd && initAutoBindings === void 0 ? (_reportPossibleCrUseOfinitAutoBindings({
- error: Error()
- }), initAutoBindings) : initAutoBindings)(this); //监听节点点击事件
- this.node.on(Node.EventType.TOUCH_END, this.onNodeTouchEnd, this); //背景视图
- this.uiBG = this.node.getChildByName("UI");
- if (this.uiBG) {
- this.oScale = this.uiBG.scale.clone();
- }
- }
- /**
- * 展示加载缓动动画
- */
- showAnim() {
- if (this.uiBG && this._hasAnim) {
- Tween.stopAllByTarget(this.uiBG);
- this.uiBG.scale = new Vec3(0.95, 0.95, 0.95);
- var scale = this.oScale;
- tween(this.uiBG).to(0.1, {
- scale: new Vec3(0.02 + scale.x, 0.02 + scale.y, 0.02 + scale.z)
- }, {
- easing: easing.backOut
- }).to(0.1, {
- scale: new Vec3(scale.x - 0.02, scale.y - 0.02, scale.z - 0.02)
- }, {
- easing: easing.backOut
- }).call(() => {
- this.uiBG.scale = this.oScale;
- }).start();
- }
- }
- /**
- * 节点触摸结束事件处理
- * @param event 触摸事件
- */
- onNodeTouchEnd(event) {
- var uiBG = this.node.getChildByName("UI");
- if (!uiBG || !this.closeOnBlank) return;
- var trans = this.node.getComponent(UITransform);
- var location = event.getUILocation();
- var pos = trans.convertToNodeSpaceAR(new Vec3(location.x, location.y));
- if (!uiBG.getComponent(UITransform).getBoundingBox().contains(new Vec2(pos.x, pos.y))) {
- this.close();
- }
- }
- /**
- * 关闭页面
- * @param cb 关闭页面的回调
- */
- close(cb) {
- var pagePath = this.node["_uiPath"];
- if (!(_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).isNull(pagePath)) {
- (_crd && uiMgr === void 0 ? (_reportPossibleCrUseOfuiMgr({
- error: Error()
- }), uiMgr) : uiMgr).hide(pagePath, cb);
- } else {
- (_crd && Logger === void 0 ? (_reportPossibleCrUseOfLogger({
- error: Error()
- }), Logger) : Logger).log("\u8BF7\u68C0\u67E5\u8BE5: " + this.node.name + "\u9875\u9762\u8DEF\u5F84\u4FE1\u606F\uFF0C\u4E0D\u5B58\u5728");
- }
- }
- /**
- * 点击事件
- * @param event 事件
- * @param customEventData 数据
- */
- onBtnClicked(event, customEventData) {
- var btnName = event.target.name;
- if (btnName === 'close_btn') {
- this.close();
- }
- }
- /**
- * 是否允许添加
- * @param node 添加的节点
- */
- _isSkipNode(node) {
- if (this.node == node) {
- return false;
- }
- var b = node.getComponent(BaseExp);
- if (b) //Logger.log("跳过", b.name)
- return b != null;
- }
- /**
- * 加入点击事件
- * @param node 加入点击的节点
- */
- _addClickEvent(node) {
- if (this._isSkipNode(node)) return;
- for (var i = 0; i < node.children.length; i++) {
- var n = node.children[i];
- if (this._isSkipNode(n)) continue;
- if (n.getComponent(Button)) {
- this.addClickEvent(n, this.node, js.getClassName(this), "onBtnClicked", n);
- }
- this._addClickEvent(n);
- }
- }
- /**
- * 加入按钮点击事件
- * @param node 点击的节点
- * @param target 点击的对象
- * @param component 组建的类名
- * @param handler 处理的具柄
- * @param customEventData 传递的数据
- */
- addClickEvent(node, target, component, handler, customEventData) {
- var eventHandler = new EventHandler();
- eventHandler.target = target;
- eventHandler.component = component;
- eventHandler.handler = handler;
- if (customEventData) {
- eventHandler.customEventData = customEventData;
- }
- var clickEvents = node.getComponent(Button).clickEvents;
- if (clickEvents.length > 0) {
- (_crd && Logger === void 0 ? (_reportPossibleCrUseOfLogger({
- error: Error()
- }), Logger) : Logger).log(node.name + "\u6309\u94AE\u5DF2\u7ECF\u5B58\u5728\u7ED1\u5B9A\uFF0C\u8DF3\u8FC7\u81EA\u52A8\u7ED1\u5B9A");
- return;
- }
- clickEvents.push(eventHandler);
- } //销毁的时候注销所有的事件
- onDestroy() {
- for (var i = 0; i < this.events.length; i++) {
- (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
- error: Error()
- }), eventEmitter) : eventEmitter).unregister(this, this.events[i]);
- }
- } //注册事件
- register(type, cb) {
- this.events.push(type);
- (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
- error: Error()
- }), eventEmitter) : eventEmitter).register(this, type, cb);
- } //取消注册的时间
- unregister(type) {
- (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
- error: Error()
- }), eventEmitter) : eventEmitter).unregister(this, type);
- } //事件派发
- dispatch(type) {
- for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- data[_key - 1] = arguments[_key];
- }
- (_crd && eventEmitter === void 0 ? (_reportPossibleCrUseOfeventEmitter({
- error: Error()
- }), eventEmitter) : eventEmitter).dispatch(type, ...data);
- }
- }) || _class));
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=54ad913f8f33e9758005e0e4795f4a028dc3e61f.js.map
|