自己写一个自定义计时器
window.CountDownSchedule = cc.Class({
extends:cc.Component,
properties: {
_lastUpdate: null,
m_observers: null,
m_groupTag: null,
},
__ctor__: function (groupTag = 0) {
this.m_groupTag = groupTag ? groupTag : 0;
this.m_observers = [];
this._lastUpdate = (new Date()).getTime();
},
onUpdateTime: function (dt) {
var now = (new Date()).getTime();
var deltaTime = (now - this._lastUpdate) / 1000;
this._lastUpdate = now;
if (g_countDownScheduleManager.isGroupPause(this.m_groupTag)) {
return;
}
for (var i = 0; i < this.m_observers.length; i++) {
if (this.m_observers[i] && this.m_observers[i].update) {
this.m_observers[i].update(deltaTime);
}
}
},
scheduleOpt: function (callback, interval, key) {
if (this.m_observers.length <= 0) {
this._lastUpdate = (new Date()).getTime();
cc.director.getScheduler().schedule(this.onUpdateTime.bind(this), this, 0.1, cc.REPEAT_FOREVER, 0, false, 'update');
}
var obj = new CountDownObserver(callback, interval, key);
this.m_observers.push(obj);
},
isScheduled: function(key) {
for (var i = 0; i < this.m_observers.length; i++) {
if (this.m_observers[i].m_key == key) {
return true;
}
}
return false;
},
unscheduleOpt: function (key) {
for (var i = 0; i < this.m_observers.length; i++) {
if (this.m_observers[i].m_key == key) {
this.m_observers.splice(i, 1);
break;
}
}
},
unscheduleAll: function () {
cc.director.getScheduler().unscheduleAllForTarget(this);
this.m_observers.length = 0;
},
});
再外面调用scheduleOpt 报错误
引擎组大大帮忙看看。