Событие движения мыши ведет себя странно в Windows 10
Я выбираю ценности event.movementX
а также event.movementY
от слушателя события перемещения мыши для отслеживания движения мыши, когда включена блокировка указателя. Эти значения - то, что перемещает углы камеры в трехмерной многопользовательской игре, которую я разрабатываю. Однако иногда эти значения выбрасывают неясные большие числа в отрицательном направлении движения.
Что еще интереснее, после многочисленных тестов на многочисленных устройствах я обнаружил, что проблема присутствовала только в Windows 10. Я даже протестировал демонстрационную версию блокировки указателя Threejs и обнаружил, что она имеет те же проблемы с элементами управления блокировкой указателя.
Я попытался отфильтровать значения, которые были явно отключены, но это все еще оставляло интерфейс чувствующим себя затруднительным. Я также пытался использовать библиотеки регулирования функций, чтобы попытаться устранить эти неверные значения, но для устранения этой проблемы пришлось вернуться к работе за разумным юзабилити (для моих целей).
Есть идеи, почему это будет происходить только в Windows 10? Любые идеи, чтобы устранить эту проблему в целом?
Кстати, вот мой слушатель событий:
$(window).on("mousemove", {prevScope: this}, function(event) {
var scope = event.data.prevScope;
scope.mesh.rotation.y -= event.originalEvent.movementX / 1000;
scope.mesh.rotation.x -= event.originalEvent.movementY / 1000;
});
Обратите внимание, что prevScope
был мой способ обойти потерю контекста моего объекта, из которого он вызывался.
Также обратите внимание, что здесь есть ссылка на мой первоначальный вопрос по аналогичной проблеме: event.movement, возвращающий нечетные значения.