За последние 24 часа нас посетили 16604 программиста и 1645 роботов. Сейчас ищут 1812 программистов ...

Временная метка.

Тема в разделе "JavaScript и AJAX", создана пользователем виталий032, 26 дек 2017.

  1. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Спасибо, что зашел.
    time - это время в данный момент,
    start - это время в начале работы функции

    При первом вхождении time < start, что противоречит логике. Не понимаю почему так происходит. Подскажите, пожалуйста.
    Код:
    Код (Javascript):
    1. function animate({timing, draw, duration}) {
    2.     let start = performance.now();
    3.  
    4.     requestAnimationFrame(function animate(time) {
    5.         // timeFraction goes from 0 to 1
    6.         let timeFraction = (time - start) / duration;
    7.         if (timeFraction > 1) timeFraction = 1;
    8.  
    9.         console.log(time+' - '+start);
    10.  
    11.         // calculate the current animation state
    12.         let progress = timing(timeFraction);
    13.  
    14.         draw(progress); // draw it
    15.  
    16.         if (timeFraction < 1) {
    17.           requestAnimationFrame(animate);
    18.         }
    19.  
    20.     });
    21. }
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    предлагаю костыль
    проверяешь условием, если неправильно - пропускаешь кадр.
     
  3. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Пример с learn.javascript.ru. Пропускать кадр не нужно, итак работает.