我不知道老师有没有我上面说的bug问题(也可能是我自己哪里写的和你不一样所致),我的解决方法是var index = Math.min(time / self.interval | 0,len) - 1,这样就可以了,看很多朋友说没有源代码,我把自己写的代码分享一下,可能也有bug,大家一起学习吧https://github.com/jsweber/animation
2016-06-20
这里有一个bug,当帧动画重复执行了时,第二遍开始,其实第一帧就执行不到了,因为
if(nowTime - prevTime >= timeline.interval){
timeline.onenterframe(nowTime - starttime);
prevTime = nowTime;
}当执行到判断里时nowTime永远是大于timeline.interval的,所以Math.min(time / self.interval | 0,len-1)取到的值是从1开始的,没有第0帧的重复执行,重复执行时永远是从1开始的,
if(nowTime - prevTime >= timeline.interval){
timeline.onenterframe(nowTime - starttime);
prevTime = nowTime;
}当执行到判断里时nowTime永远是大于timeline.interval的,所以Math.min(time / self.interval | 0,len-1)取到的值是从1开始的,没有第0帧的重复执行,重复执行时永远是从1开始的,
2016-06-20