5d8144768428205eb83d54c7574071768f6c1b5b.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. System.register(["cc"], function (_export, _context) {
  2. "use strict";
  3. var _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, BlockInputEvents, color, ImageAsset, Label, Layers, Node, Sprite, SpriteFrame, Texture2D, tween, UIOpacity, UITransform, v3, view, Toast, _crd, Gravity, imageObj, imageAsset;
  4. _export("Toast", void 0);
  5. return {
  6. setters: [function (_cc) {
  7. _cclegacy = _cc.cclegacy;
  8. __checkObsolete__ = _cc.__checkObsolete__;
  9. __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
  10. BlockInputEvents = _cc.BlockInputEvents;
  11. color = _cc.color;
  12. ImageAsset = _cc.ImageAsset;
  13. Label = _cc.Label;
  14. Layers = _cc.Layers;
  15. Node = _cc.Node;
  16. Sprite = _cc.Sprite;
  17. SpriteFrame = _cc.SpriteFrame;
  18. Texture2D = _cc.Texture2D;
  19. tween = _cc.tween;
  20. UIOpacity = _cc.UIOpacity;
  21. UITransform = _cc.UITransform;
  22. v3 = _cc.v3;
  23. view = _cc.view;
  24. }],
  25. execute: function () {
  26. _crd = true;
  27. _cclegacy._RF.push({}, "0cfc340yupKhKm9JAtrMkIE", "Toast", undefined);
  28. /**
  29. * 位置
  30. */
  31. __checkObsolete__(['BlockInputEvents', 'color', 'ImageAsset', 'Label', 'Layers', 'Node', 'Sprite', 'SpriteFrame', 'Texture2D', 'tween', 'UIOpacity', 'UITransform', 'v3', 'view']);
  32. _export("Gravity", Gravity = /*#__PURE__*/function (Gravity) {
  33. Gravity[Gravity["BOTTOM"] = 0] = "BOTTOM";
  34. return Gravity;
  35. }({}));
  36. imageObj = new Image();
  37. imageObj.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACAQMAAABIeJ9nAAAAA1BMVEX///+nxBvIAAAACklEQVQI12MAAgAABAABINItbwAAAABJRU5ErkJggg==";
  38. imageAsset = new ImageAsset(imageObj);
  39. /*
  40. Toast.makeText(gui.getLayerNode(5),"可笑可笑1").show();
  41. */
  42. _export("Toast", Toast = class Toast {
  43. constructor(root) {
  44. this._bgNode = null;
  45. this._textNode = null;
  46. this._node = null;
  47. this._text = '';
  48. this._time = 0;
  49. this._textSize = 18;
  50. this._gravity = Gravity.BOTTOM;
  51. this._node = this.getPNode(root);
  52. this._bgNode = new Node();
  53. this._bgNode.layer = Layers.Enum.UI_2D;
  54. this._bgNode.addComponent(BlockInputEvents);
  55. var sprite = this._bgNode.addComponent(Sprite);
  56. sprite.type = Sprite.Type.SLICED;
  57. var textureObj = new Texture2D();
  58. textureObj.image = imageAsset;
  59. var sf = new SpriteFrame();
  60. sf.texture = textureObj;
  61. sprite.spriteFrame = sf;
  62. sprite.color = color(0, 0, 0, 200);
  63. this._bgNode.addComponent(UIOpacity);
  64. this._bgNode.active = false;
  65. this._textNode = new Node('Text');
  66. this._textNode.layer = Layers.Enum.UI_2D;
  67. var uiTransform = this._textNode.addComponent(UITransform);
  68. uiTransform.width = this._node.getComponent(UITransform).width;
  69. var label = this._textNode.addComponent(Label);
  70. label.horizontalAlign = Label.HorizontalAlign.CENTER;
  71. label.verticalAlign = Label.VerticalAlign.CENTER;
  72. this._textSize = 20;
  73. this._textNode.parent = this._bgNode;
  74. this._bgNode.parent = this._node;
  75. }
  76. /**
  77. * 生成吐司
  78. * @param node
  79. * @param text
  80. * @param time
  81. * @returns
  82. */
  83. static makeText(parent, text, time) {
  84. if (time === void 0) {
  85. time = Toast.LENGTH_SHORT;
  86. }
  87. var toast = new Toast(parent);
  88. toast.setText(text);
  89. toast.setTime(time);
  90. return toast;
  91. }
  92. /**
  93. * 显示吐司
  94. */
  95. show() {
  96. this.setOverFlow();
  97. this._bgNode.active = true;
  98. var uiOpacity = this._bgNode.getComponent(UIOpacity);
  99. tween(uiOpacity).delay(this._time).to(0.3, {
  100. opacity: 0
  101. }).call(() => {
  102. this._bgNode.destroy();
  103. }).start();
  104. }
  105. /**
  106. * 设置文字
  107. * @param text 文字
  108. * @returns
  109. */
  110. setText(text) {
  111. this._text = text;
  112. var label = this._textNode.getComponent(Label);
  113. label.string = this._text;
  114. return this;
  115. }
  116. /**
  117. * 设置文字大小
  118. * @param textSize 文字大小
  119. * @returns
  120. */
  121. setFontSize(textSize) {
  122. this._textSize = textSize;
  123. var label = this._textNode.getComponent(Label);
  124. label.fontSize = this._textSize;
  125. return this;
  126. }
  127. /**
  128. * 设置时间
  129. * @param time 时间
  130. * @returns
  131. */
  132. setTime(time) {
  133. this._time = time;
  134. return this;
  135. }
  136. /**
  137. * 设置位置
  138. * @param gravity 位置
  139. * @returns
  140. */
  141. setGravity(gravity) {
  142. this._gravity = gravity;
  143. return this;
  144. }
  145. setPosition() {
  146. var uiTransform = this._node.getComponent(UITransform);
  147. var bgUITransform = this._bgNode.getComponent(UITransform);
  148. if (Gravity.BOTTOM === this._gravity) {
  149. var y = -uiTransform.height / 2 + bgUITransform.height / 2 + 64;
  150. this._bgNode.position = v3(0, y, 0);
  151. }
  152. }
  153. setOverFlow() {
  154. var maxLength = this._node.getComponent(UITransform).width / 2;
  155. var label = this._textNode.getComponent(Label);
  156. var fontLength = this._text.length * label.fontSize;
  157. var uiTransform = this._textNode.getComponent(UITransform);
  158. if (fontLength > maxLength) {
  159. uiTransform.width = maxLength;
  160. label.overflow = Label.Overflow.RESIZE_HEIGHT;
  161. } else {
  162. uiTransform.width = fontLength;
  163. label.overflow = Label.Overflow.NONE;
  164. }
  165. var bgUITransform = this._bgNode.getComponent(UITransform);
  166. bgUITransform.width = uiTransform.width + label.fontSize * 4;
  167. bgUITransform.height = uiTransform.height;
  168. this.setPosition();
  169. }
  170. getPNode(root) {
  171. if (null == Toast.pNode || !Toast.pNode.isValid) {
  172. Toast.pNode = new Node('Toast');
  173. var transform = Toast.pNode.addComponent(UITransform);
  174. Toast.pNode.layer = Layers.Enum.UI_2D;
  175. root.addChild(Toast.pNode);
  176. Toast.pNode.setSiblingIndex(root.children.length);
  177. var size = view.getVisibleSize();
  178. transform.contentSize = size;
  179. transform.width = size.width;
  180. transform.height = size.height;
  181. }
  182. return Toast.pNode;
  183. }
  184. });
  185. Toast.LENGTH_SHORT = 2;
  186. // 短时间吐司
  187. Toast.LENGTH_LONG = 3.5;
  188. // 长时间吐司
  189. Toast.pNode = null;
  190. _cclegacy._RF.pop();
  191. _crd = false;
  192. }
  193. };
  194. });
  195. //# sourceMappingURL=5d8144768428205eb83d54c7574071768f6c1b5b.js.map