cocos2d -js 解决定时器schedule误差
定时器原理:cocos2d-js底层在每一帧计算中,遍历所有定时器,看是否达到触发时间。看看一个新的定时器:这里核心是then=Now-,每一次触发的时候,把误差算到下次触发的控制中。例如60fps,那么schedule2每16ms触发一次,用户设定了100ms的interval,那么将有16*7=112>100,7帧才触发1次用户的定时器。那么下次将有12+16*6=108>100,只需要96ms就触发第2次用户的定时器,这次提前了4ms,弥补了第1次的误差。这个定时器经得起考验,即使在低帧频情况下,仍