Имеет ли MOUSE_WHEEL минимальное значение дельты до его запуска? - PullRequest
8 голосов
/ 05 июня 2011

У меня возникли проблемы со значениями дельты MOUSE_WHEEL.Кажется, что событие не сработает, если я ДЕЙСТВИТЕЛЬНО не поверну проклятое колесо.Что имеет смысл, потому что единственные значения, которые я получаю, находятся в диапазоне 3-30.Я также надеялся поймать 1-3, потому что, если я просто поверну несколько меток, ничего не сработает, и приложение будет вялым.

К вашему сведению, каждая другая программа на моей машине прекрасно чувствует эти 1-ступенчатые вращения, поэтому это не мышь.Не сработает ли AS3, если дельта меньше 3?

Вот код

private function handleMouseWheel(e:MouseEvent):void {
trace(e.delta); 
    // Output is always more/less than +/- 3 
}

private function handleStageInit(e:Event):void {
    stage.addEventListener(MouseEvent.MOUSE_WHEEL, handleMouseWheel);
}

Ответы [ 4 ]

5 голосов
/ 24 сентября 2012

AS3 не имеет настраиваемого значения чувствительности колеса.

Способ работы, как мне кажется, зависит от ОБА физической мыши и настроек ОС ..

Например, в windows вы устанавливаете чувствительность различных настроек мыши в ControlPanel -> Mouse.
На вкладке «Колесо» пользователь может установить, какмного линий (например, дельта) колесо делает для каждой физической выемки.Значение по умолчанию - 3.

В то же время каждая физическая мышь имеет различную чувствительность к надрезу, например.сколько вам нужно переместить его, чтобы зарегистрировать «метку» в ОС.

Я считаю, что контейнер swf также имеет некоторое влияние, поэтому он может вести себя по-разному в разных браузерах, как проектор, ив вашей IDE.

Для браузеров большинство людей, кажется, обходят флэш-память и прослушивают / передают события колеса прокрутки JavaScript во флэш-память:

См. следующие библиотеки:

https://github.com/digi604/As3-Mouse-Wheel-Fixer

http://labs.byhook.com/2010/04/09/flash-mouse-wheel-support/

0 голосов
/ 27 сентября 2012

У вас есть проблема в вашем коде или устройстве, посмотрите этот пример (вы можете щелкнуть правой кнопкой мыши, чтобы просмотреть код) На моей машине все работает отлично.

0 голосов
/ 25 сентября 2012

AS3 стреляет только +3 (прокрутка вверх) и -3 (прокрутка вниз), но мы можем рассчитать наши требования, разделив некоторую постоянную.

import flash.events.MouseEvent;

stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);

function mouseWheelHandler(ev){
    trace(ev.delta/3); // +1 or -1
    trace(ev.delta/6); // +.5 or -.5
}
0 голосов
/ 05 июня 2011

Согласно ilike2Flash изменение дельты может зависеть от мыши пользователя.

...