Javascript touch-event: как увеличить частоту срабатывания? - PullRequest
0 голосов
/ 21 сентября 2019

Есть прослушиватель событий, который запускается «touchmove» и выполняет функцию.Все красиво и аккуратно.

Тем не менее, в моем понимании, функция срабатывает каждые (скажем,) 500 мс, что является очень медленной частотой.

Как "touchmove" может запускать функцию каждые 300 мсили 100 мс?

//this event listener is very slow
canvas.addEventListener('touchmove', draw_fn, false);

function draw_fn(e) { 
    getTouchPos(e);
    drawDot(canvas,touchX,touchY,12);
    event.preventDefault();
}

// tried to register touchmove with a bigger frequency
window.requestAnimFrame = (function (callback) {
    return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimaitonFrame ||
        function (callback) {
            window.setTimeout(callback, 20); //or 200 or 100 or 50 or...
        };
});

1 Ответ

0 голосов
/ 22 сентября 2019

Я нашел этот урок

http://www.javascriptkit.com/javatutors/touchevents3.shtml

Это другой подход (ссылка на часть 3, вам, вероятно, понадобится прочитать также части 1 и 2).Вместо того, чтобы брать touchx и y из события, вы можете выбрать массив пройденных точек.Это должно дать вам необходимую гранулярность.

Отличный учебник, содержит подробную информацию об атрибутах сенсорных событий

...