TipsManager.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * @Author: dgflash
  3. * @Date: 2021-07-03 16:13:17
  4. * @LastEditors: dgflash
  5. * @LastEditTime: 2022-08-05 10:13:47
  6. */
  7. import { Node, tween, Vec3 } from "cc";
  8. import { UICallbacks } from "../../../../../extensions/oops-plugin-framework/assets/core/gui/layer/Defines";
  9. import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
  10. import { UIID } from "../config/GameUIConfig";
  11. /** 提示窗口管理 */
  12. class TipsManager {
  13. /**
  14. * 提示弹出窗口
  15. * @param content 提示内容文本或多语言关键字
  16. * @param onOk 确认回调
  17. * @param title 窗口标题文本或多语言关键字
  18. * @param okWord 确认按钮文本或多语言关键字
  19. */
  20. alert(content: string, onOk?: Function, title?: string, okWord?: string) {
  21. let operate: any = {
  22. title: title ? title : 'common_prompt_title',
  23. content: content,
  24. okWord: okWord ? okWord : 'common_prompt_ok',
  25. okFunc: onOk,
  26. needCancel: false
  27. };
  28. oops.gui.open(UIID.Alert, operate, tips.getPopCommonEffect());
  29. }
  30. /**
  31. * 确认弹出窗口
  32. * @param content 提示内容文本或多语言关键字
  33. * @param onOk 确认回调
  34. * @param onCancel 取消回调
  35. * @param title 窗口标题文本或多语言关键字
  36. * @param okWord 确认按钮文本或多语言关键字
  37. */
  38. confirm(content: string, onOk?: Function, onCancel?: Function, title?: string, okWord?: string) {
  39. let operate: any = {
  40. title: title ? title : 'common_prompt_title',
  41. content: content,
  42. okWord: okWord ? okWord : 'common_prompt_ok',
  43. cancelWord: 'common_prompt_cancal',
  44. okFunc: onOk,
  45. cancelFunc: onCancel,
  46. needCancel: true
  47. };
  48. oops.gui.open(UIID.Confirm, operate, tips.getPopCommonEffect());
  49. }
  50. /** 自定义弹窗动画 */
  51. private getPopCommonEffect(callbacks?: UICallbacks) {
  52. let newCallbacks: UICallbacks = {
  53. // 节点添加动画
  54. onAdded: (node, params) => {
  55. node.setScale(0.1, 0.1, 0.1);
  56. tween(node)
  57. .to(0.2, { scale: new Vec3(1, 1, 1) })
  58. .start();
  59. },
  60. // 节点删除动画
  61. onBeforeRemove: (node, next) => {
  62. tween(node)
  63. .to(0.2, { scale: new Vec3(0.1, 0.1, 0.1) })
  64. .call(next)
  65. .start();
  66. },
  67. }
  68. if (callbacks) {
  69. if (callbacks && callbacks.onAdded) {
  70. let onAdded = callbacks.onAdded;
  71. callbacks.onAdded = (node: Node, params: any) => {
  72. onAdded(node, params);
  73. // @ts-ignore
  74. newCallbacks.onAdded(node, params);
  75. };
  76. }
  77. if (callbacks && callbacks.onBeforeRemove) {
  78. let onBeforeRemove = callbacks.onBeforeRemove;
  79. callbacks.onBeforeRemove = (node, params) => {
  80. onBeforeRemove(node, params);
  81. // @ts-ignore
  82. newCallbacks.onBeforeRemove(node, params);
  83. };
  84. }
  85. return callbacks;
  86. }
  87. return newCallbacks;
  88. }
  89. }
  90. export var tips = new TipsManager();