123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2"], function (_export, _context) {
- "use strict";
- var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, Color, Component, find, Label, Node, Sprite, Tween, tween, UITransform, v3, PoolManager, ResUtil, _dec, _class, _class2, _crd, ccclass, property, MsgHints;
- function _reportPossibleCrUseOfPoolManager(extras) {
- _reporterNs.report("PoolManager", "../core/manager/PoolManager", _context.meta, extras);
- }
- function _reportPossibleCrUseOfResUtil(extras) {
- _reporterNs.report("ResUtil", "./ResUtil", _context.meta, extras);
- }
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- _decorator = _cc._decorator;
- Color = _cc.Color;
- Component = _cc.Component;
- find = _cc.find;
- Label = _cc.Label;
- Node = _cc.Node;
- Sprite = _cc.Sprite;
- Tween = _cc.Tween;
- tween = _cc.tween;
- UITransform = _cc.UITransform;
- v3 = _cc.v3;
- }, function (_unresolved_2) {
- PoolManager = _unresolved_2.PoolManager;
- }, function (_unresolved_3) {
- ResUtil = _unresolved_3.ResUtil;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "f9972T56jtPDKqqzCx+jmQP", "MsgHints", undefined);
- __checkObsolete__(['_decorator', 'Color', 'Component', 'find', 'Label', 'Node', 'Sprite', 'Tween', 'tween', 'UITransform', 'v3']);
- ({
- ccclass,
- property
- } = _decorator);
- /**
- * 通用消息提示框
- * 使用示例:
- * MsgHints.show("这是一条提示消息");
- *
- * 特性:
- * 1. 使用对象池管理
- * 2. 动态创建节点(无需预制体)
- * 3. 内置Tween动画效果
- * 4. 自动回收机制
- */
- _export("default", MsgHints = (_dec = ccclass("MsgHints"), _dec(_class = (_class2 = class MsgHints extends Component {
- /**
- * 创建一个msgNode节点
- * @returns
- */
- static createMsgNode() {
- var node = (_crd && PoolManager === void 0 ? (_reportPossibleCrUseOfPoolManager({
- error: Error()
- }), PoolManager) : PoolManager).getName(MsgHints.node_name);
- if (!node) {
- //创建背景
- node = new Node(MsgHints.node_name);
- node.addComponent(MsgHints);
- node.active = true;
- var bgTransform = node.addComponent(UITransform);
- bgTransform.width = MsgHints.max_width;
- bgTransform.height = 50;
- node.setPosition(0, 0, 0);
- var sp = node.addComponent(Sprite);
- sp.sizeMode = Sprite.SizeMode.TRIMMED;
- sp.type = Sprite.Type.SIMPLE;
- (_crd && ResUtil === void 0 ? (_reportPossibleCrUseOfResUtil({
- error: Error()
- }), ResUtil) : ResUtil).setSpriteFrame("msg_hint", sp); //创建文本标签
- var labelNode = new Node('label');
- var laTransform = labelNode.addComponent(UITransform);
- laTransform.width = MsgHints.max_width - MsgHints.padding * 2;
- laTransform.height = 50;
- var label = labelNode.addComponent(Label);
- label.fontSize = 25;
- label.color = Color.WHITE;
- label.lineHeight = 30;
- label.horizontalAlign = Label.HorizontalAlign.CENTER;
- label.verticalAlign = Label.VerticalAlign.CENTER;
- label.overflow = Label.Overflow.NONE;
- label.isBold = true;
- labelNode.parent = node;
- }
- return node;
- }
- /**
- * 设置提示消息内容
- * @param msg 消息内容
- */
- setMsg(msg) {
- var label = this.reset();
- if (!label) return;
- label.string = msg;
- this._adjustLayout();
- this._playAnimation();
- }
- /**
- * 调整对齐
- * @returns
- */
- _adjustLayout() {
- var padding = 20.0;
- var label = this.getMsgLable();
- var labelTransform = label == null ? void 0 : label.node.getComponent(UITransform);
- var bgTransform = this.node.getComponent(UITransform);
- if (!labelTransform || !bgTransform) return; // 计算文本实际宽度(不超过 maxWidth)
- var labelMax = MsgHints.max_width - MsgHints.padding * 2;
- var textWidth = Math.min(labelTransform.width, MsgHints.max_width - MsgHints.padding * 2);
- if (textWidth >= labelMax) {
- label.overflow = Label.Overflow.RESIZE_HEIGHT;
- labelTransform.width = MsgHints.max_width - padding * 2;
- bgTransform.width = MsgHints.max_width;
- bgTransform.height = labelTransform.height + 10;
- } else {
- label.overflow = Label.Overflow.NONE;
- labelTransform.width = textWidth;
- bgTransform.width = textWidth + padding * 2;
- bgTransform.height = labelTransform.height + 10 * 3;
- }
- }
- /**
- * 播放展示动画
- */
- _playAnimation() {
- Tween.stopAllByTarget(this.node);
- this.node.setScale(v3(0, 0, 0));
- tween(this.node).to(0.1, {
- scale: v3(1.1, 1.1, 1)
- }).to(0.1, {
- scale: v3(0.9, 0.9, 1)
- }).to(0.1, {
- scale: v3(1, 1, 1)
- }).delay(MsgHints.default_duration).by(0.5, {
- position: v3(0, 100, 0)
- }).call(() => {
- this.reset();
- (_crd && PoolManager === void 0 ? (_reportPossibleCrUseOfPoolManager({
- error: Error()
- }), PoolManager) : PoolManager).putNode(this.node);
- }).start();
- }
- /**
- * 重置lable一些属性
- */
- reset() {
- var lable = this.getMsgLable();
- var laTransform = lable.node.getComponent(UITransform);
- laTransform.width = MsgHints.max_width - MsgHints.padding * 2;
- laTransform.height = 50;
- lable.overflow = Label.Overflow.NONE;
- this.node.setScale(v3(1, 1, 1));
- return lable;
- }
- /**
- * 显示提示消息
- * @param msg 消息内容
- */
- static show(msg) {
- if (!msg) return; //尝试从对象池获取
- var node = this.createMsgNode(); //设置节点到Canvas
- var canvas = find("Canvas");
- if (canvas) {
- node.active = true;
- node.parent = canvas; //确保在最上层
- node.setSiblingIndex(9999); //设置消息内容
- var comp = node.getComponent(MsgHints);
- if (comp) {
- comp.setMsg(msg);
- }
- }
- }
- /**
- * 得到文本节点
- */
- getMsgLable() {
- return this.node.getChildByName("label").getComponent(Label);
- }
- }, _class2.node_name = "MsgHints", _class2.default_duration = 1.5, _class2.max_width = 430, _class2.padding = 15, _class2)) || _class));
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=eea1ee21a2d60cdb2463fa0446b63562d3e68198.js.map
|