thehighhomie
@thehighhomie

Canvas, внутренняя функция setTimeout()?

Помогите разобраться. Почему при анимации для canvas'a нужно ставить внутреннюю функцию setTimeout и потом саму эту функцию анимации в функцию setTimeout? Не могу понять почему нужно 2 раза это делать. Без внутренней функции не работает. В прикрепленном скрине видно о чем я говорю. Помогите пожалуйста разобраться, голова уже взрывается.
b7606030c27d4e93bebfefbe97d66d51.jpg
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
Ну у вас сделано так чтобы функция выполнялась каждые 20ms.
Первый раз вызывает функцию тот таймаут который зеленым обведен. Все последующие функция выполняется и откладывает свой новый вызов на 20ms.
Фактически рекурсивный вызов с таймаутом.
Не знаю что у вас там работает или не неработает, но хочется спросить - почему бы не использовать setInterval?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Dit81
@Dit81
Security researcher, pentester, internet-marketer
Сейчас наверное лучше использовать:
window.requestAnimFrame = (function(){
      return  window.requestAnimationFrame       || 
              window.webkitRequestAnimationFrame || 
              window.mozRequestAnimationFrame    || 
              window.oRequestAnimationFrame      || 
              window.msRequestAnimationFrame     || 
              function(/* function */ callback, /* DOMElement */ element){
                window.setTimeout(callback, 1000 / 60);
              };
    })();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы