TimeManager.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. Object.defineProperty(i, "__esModule", {value: !0}),
  5. (i.TimerHandlerObj = i.TimerManager = void 0),
  6. (i.TimerManager = class {
  7. constructor() {
  8. (this.isPause = !1),
  9. (this._lastTime = 0),
  10. (this._handlers = []),
  11. ObjectPool.registerClass(s, "TimerHandlerObj"),
  12. (this._delHandlers = []),
  13. (this._currTime = this._lastTime = cc.director.getTotalTime()),
  14. (this._currFrame = 0),
  15. (this._count = 0),
  16. (this._timeScale = 1);
  17. }
  18. get currFrame() {
  19. return this._currFrame;
  20. }
  21. reset() {
  22. (this._handlers = []), (this._delHandlers = []), (this._timeScale = 1), (this._count = 0);
  23. }
  24. setTimeScale(t) {
  25. this._timeScale = t;
  26. }
  27. onGamePause() {}
  28. onGameResume() {}
  29. onEnterFrame(t) {
  30. for (
  31. this._currFrame++, t = Math.min(t, 0.3), this._currTime += 1e3 * t * this._timeScale;
  32. this._delHandlers.length;
  33. )
  34. this.removeHandle(this._delHandlers.pop());
  35. for (var e = 0; e < this._count; e++) {
  36. var i = this._handlers[e];
  37. if (
  38. -1 == this._delHandlers.indexOf(i) &&
  39. (i.userFrame ? this._currFrame : this._currTime) >= i.exeTime
  40. ) {
  41. try {
  42. i.method.call(i.methodObj, this._currTime - i.dealTime);
  43. } catch (t) {
  44. Log.error(t);
  45. }
  46. if (((i.dealTime = this._currTime), (i.exeTime += i.delay), !i.repeat))
  47. if (1 < i.repeatCount) i.repeatCount--;
  48. else {
  49. if (i.complateMethod)
  50. try {
  51. i.complateMethod.apply(i.complateMethodObj);
  52. } catch (t) {
  53. Log.error(t);
  54. }
  55. -1 == this._delHandlers.indexOf(i) && this._delHandlers.push(i);
  56. }
  57. }
  58. }
  59. return !0;
  60. }
  61. removeHandle(t) {
  62. var e = this._handlers.indexOf(t);
  63. -1 != e
  64. ? (this._handlers.splice(e, 1), t.clear(), ObjectPool.push(t), this._count--)
  65. : Log.warn("what????");
  66. }
  67. create(t, e, i, s, o, a, n) {
  68. var r;
  69. e < 0 ||
  70. i < 0 ||
  71. null == s ||
  72. (this.remove(s, o),
  73. ((r = ObjectPool.pop("TimerHandlerObj")).userFrame = t),
  74. (r.repeat = 0 == i),
  75. (r.repeatCount = i),
  76. (r.delay = e),
  77. (r.method = s),
  78. (r.methodObj = o),
  79. (r.complateMethod = a),
  80. (r.complateMethodObj = n),
  81. (r.exeTime = e + (t ? this._currFrame : this._currTime)),
  82. (r.dealTime = this._currTime),
  83. this._handlers.push(r),
  84. this._count++);
  85. }
  86. doTimer(t, e, i, s, o = null, a = null) {
  87. this.create(!1, t, e, i, s, o, a);
  88. }
  89. doFrame(t, e, i, s, o = null, a = null) {
  90. this.create(!0, t, e, i, s, o, a);
  91. }
  92. setTimeOut(t, e, i) {
  93. this.doTimer(t, 1, e, i);
  94. }
  95. setFrameOut(t, e, i) {
  96. this.doFrame(t, 1, e, i);
  97. }
  98. get count() {
  99. return this._count;
  100. }
  101. remove(t, e) {
  102. for (var i = 0; i < this._count; i++) {
  103. var s = this._handlers[i];
  104. if (s.method == t && s.methodObj == e && -1 == this._delHandlers.indexOf(s)) {
  105. this._delHandlers.push(s);
  106. break;
  107. }
  108. }
  109. }
  110. sleep(e, i) {
  111. return new Promise(t => {
  112. this.doTimer(e, 1, t, i);
  113. });
  114. }
  115. sleepFrame(e, i) {
  116. return new Promise(t => {
  117. this.doFrame(e, 1, t, i);
  118. });
  119. }
  120. removeAll(t) {
  121. for (var e = 0; e < this._count; e++) {
  122. var i = this._handlers[e];
  123. i.methodObj == t && -1 == this._delHandlers.indexOf(i) && this._delHandlers.push(i);
  124. }
  125. }
  126. isExists(t, e) {
  127. for (var i = 0; i < this._count; i++) {
  128. var s = this._handlers[i];
  129. if (s.method == t && s.methodObj == e && -1 == this._delHandlers.indexOf(s)) return !0;
  130. }
  131. return !1;
  132. }
  133. });
  134. class s {
  135. constructor() {
  136. (this.ObjectPoolKey = null), (this.delay = 0), (this.repeatCount = 0), (this.exeTime = 0), (this.dealTime = 0);
  137. }
  138. clear() {
  139. (this.method = null), (this.methodObj = null), (this.complateMethod = null), (this.complateMethodObj = null);
  140. }
  141. }
  142. i.TimerHandlerObj = s;