我不知道老師有沒有我上面說的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