Показать сообщение отдельно
  #2 (permalink)  
Старый 27.01.2018, 00:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

animate - это коллбэк, функция которая не вызывается прямо сейчас, а передаётся в качестве параметра в другую функцию(в данном случае requestAnimationFrame), коея уже в свою очередь внутри себя её вызывает с тем или иным набором параметров(в данном случае с параметром time, содержащим метку времени на момент вызова).

lastTime обявлена выше по скоупу(var angle = 0, lastTime = null;) потому доступна для изменения как внутри функции, так и снаружи. Значение null она имеет только первый раз, потом же происходит присовение текущей метки (lastTime = time;) и в последующих вызовах animate она имеет то значение, что и описывается её названием.

angle += (time - lastTime) * 0.001: угол равен время текущего вызова функции animate минус время предыдущего умножить на 0.001.
Фактически это значит, что независимо от частоты кадров угол изменится ровно на 0.001 за каждую прошедшую милисекнуду.
__________________
29375, 35

Последний раз редактировалось Aetae, 27.01.2018 в 00:52.
Ответить с цитированием