Допустим, есть такой код:
requestAnimationFrame(function measure(time) {
alert();
})
И где-то есть кнопка, по нажатию на которую функция вызывает данный код.
Все работает отлично. Несколько раз нажимаю на кнопку - несколько раз вылетает alert.
Но если сделать небольшую замену:
requestAnimationFrame( measure = function(time) {
alert();
})
то при многократном нажатии на кнопку функция сработает только один раз.
Я попробовал вынести функцию отдельно и вызвать ее через call:
requestAnimationFrame( measure.call() )
выходит ошибка: The callback provided as parameter 1 is not a function
Вопрос: если мне нужна именно запись вида measure = function(time), как переписать так, чтобы функция срабатывала многократно?
P.S. Полный код, брал с сайта javascript.ru. В нем описанная проблема на третьей строке с функцией animate:
function animate(options) {
var start = performance.now();
requestAnimationFrame( function animate(time) {
var timeFraction = (time - start) / options.duration;
if (timeFraction > 1) timeFraction = 1;
var progress = options.timing(timeFraction)
options.draw(progress);
if (timeFraction < 1) {
requestAnimationFrame(animate);
}
});
}
P.P.S. самый полный код на JSFiddle:
https://jsfiddle.net/bafxwmdf/ (проблема на девятой строке)