![]() |
Калибровка MOUSE_WHEEL
Возникла серьезная проблема с сообщениями MOUSE_WHEEL. Внутри сообщения MouseEvent передаётся поле delta, указывающее количество строк. Как правило, оно равняется +/-3 (иногда при сильных рывках +/-6).
НО, флеш зараза шлёт эти сообщения пачками, причём количество зависит как от конкретного компьютера так и от версии флеша: (на 9 флеше приходит в среднем по два события, на 10 по 3-4). У меня скрол используется для изменения zoom'а. Стоит задача: как откалибровать скролл, чтобы при небольшом передвижении колеса мой код воспринимал это как +/-1? |
Делить полученную delta на три?
|
Проблема не в дельте, а в том, что на одну прокрутку приходит N сообщений с delta=3
|
повесить апдейт на ентерфрейм, и в ентерфрейме уже проверять не слишком ли изменилось значение.
Т.е. схема примерно такая: получили событие скрола, подняли флаг, и пока скрол не отрисовали в ентерфрейме остальные события игнорируем, после отрисовки флаг сняли. ЗЫ. дельта в разных браузерах и у разных мышек может очень сильно отличаться. Самый безумный вариант - Логитек + Хром :) примерно по пол экрана за раз прокручивает :) |
Спасибо! Наверное так и сделаю.
Только жаль, что быстрые прокрутки будут восприниматься как медленные (все события мы воспримем как одно, а на delta, как Вы говорите, полагаться нельзя). |
| Часовой пояс GMT +4, время: 22:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.