Я использую setTimeout для создания анимации в Javascript, но, похоже, это не работает.Выполняется только 1-й ход анимации, никаких последующих ходов нет.
Я пробовал на двух разных ноутбуках использовать Firefox, один не выдает никакой ошибки, но один говорит self.animateCallback is not a function
.Я также вижу другие ошибки, например, когда я говорю, что моя функция тайм-аута бесполезна или «компилируй и работай», когда я пробовал разные способы.Похоже, это не работает.Я пробовал "function(self){self.animateCallback()}"
и "self.animateCallback"
(с кавычками и без).
Код ниже, это часть метода-прототипа.
increment : function(incr, target, tick) {
var self = this;
self.animateCallback = function()
{
var done = Math.abs(self.currValue - target) < Math.abs(incr);
if(!self.animateCallback || done) {
if(done) {
self.updateAngle(self.currValue/self.maxValue);
self.stopAnimation(); //just setting animateCallback to null
}
}
else
{
self.updateAngle((self.currValue+incr)/self.maxValue);
setTimeout(self.animateCallback, tick);
}
}
self.animateCallback.call();
},