•
使用
定时
器好处:
–
每当
Node
不再可见或被移出,
调度
器停止(最好手动移除)
–
引擎暂停,
定时
器停止;引擎重新开始,
定时
器继续启动
–
引擎封装对应多平台的
定时
器,使用时不需关心其所设定的定时对象的销毁、停止、崩溃风险
•每帧执行scheduleUpdate
var ScheduleUpdateLayer = cc.Layer.extend({ ctor : function () { this._super(); this.scheduleUpdate(); }, Update : function (){ //do something } });
•
单
次定时器:
scheduleOnce
•
只能依赖节点触发,这样设计的好处是便于定时器的统一管理
var SheduleLayer = cc.Layer.extend({ stor : function () { this._super(); this.scheduleOnce(function(){ trace ("tick"); }, 2); } });
• 取消 定时器• 取消 scheduleUpdate使用 node.unscheduleUpdate();
• 取消 scheduleOnce 、 schedule使用 node.unschedule(callback);
• callback 必须跟原来 schedule 传入的是同一个函数• 暂停定时器 node.pause ()• 恢复定时器 node.resume ()• 定时器 改进
schedule0 : function (callback,interval){ var then = Date.now(); interval = interval*1000; this.schedule(function(){ var now = Date.now(); var delta = now - then; if (delta > interval){ then = now - (delta % interval);//关键:抵消误差 callback.call(this) } }.bind(this),0 ); },