f780142056b451af1186d982a8e16130bfd276a2.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. System.register(["cc"], function (_export, _context) {
  2. "use strict";
  3. var _cclegacy, Delay, _crd;
  4. function get_new_delay() {
  5. return new Delay();
  6. }
  7. _export("default", get_new_delay);
  8. return {
  9. setters: [function (_cc) {
  10. _cclegacy = _cc.cclegacy;
  11. }],
  12. execute: function () {
  13. _crd = true;
  14. _cclegacy._RF.push({}, "8e7b9WCurJPu4fjNX9PZbRY", "Delay", undefined);
  15. Delay = class Delay {
  16. constructor() {
  17. this.delays = [];
  18. this.paused = false;
  19. }
  20. // 创建一个新的延迟
  21. start(seconds) {
  22. var duration = seconds;
  23. return new Promise(resolve => {
  24. this.delays.push({
  25. duration: duration,
  26. elapsed: 0,
  27. resolve: resolve
  28. });
  29. });
  30. }
  31. pause() {
  32. this.paused = true;
  33. }
  34. resume() {
  35. this.paused = false;
  36. } //更新所有延迟的状态,传入更新时间间隔(秒)
  37. update(deltaTime) {
  38. if (this.paused) return;
  39. for (var i = this.delays.length - 1; i >= 0; i--) {
  40. var delay = this.delays[i];
  41. delay.elapsed += deltaTime; // 累加已过时间
  42. if (delay.elapsed >= delay.duration) {
  43. if (delay.resolve) {
  44. delay.resolve(); // 解析 Promise
  45. delay.resolve = null; // 清空引用
  46. }
  47. this.delays.splice(i, 1); // 从数组中移除已完成的延迟对象
  48. }
  49. }
  50. } //取消所有延迟
  51. cancelAll() {
  52. this.delays.forEach(delay => {
  53. delay.resolve = null;
  54. });
  55. this.delays = []; //清空所有延迟
  56. } //检查是否有活动的延迟
  57. isActive() {
  58. return this.delays.length > 0;
  59. }
  60. };
  61. _cclegacy._RF.pop();
  62. _crd = false;
  63. }
  64. };
  65. });
  66. //# sourceMappingURL=f780142056b451af1186d982a8e16130bfd276a2.js.map