Обект события.
Здравствуйте, прочитал весь цыкл статей http://javascript.ru/tutorial/events
Но так и не нашел ответа на интересующий меня вопрос. В объекте event есть много констант, например: MOUSEDOWN = 1 MOUSEUP = 2 MOUSEOVER = 4 MOUSEOUT = 8 MOUSEMOVE = 16 MOUSEDRAG = 32 CLICK = 64 DBLCLICK = 128 KEYDOWN = 256 KEYUP = 512 и.т.д. Вот меня и интересует что это за константы и как их использовать? ведь судя по ним(их значениям) их можно объединять. |
http://www.w3.org/TR/DOM-Level-2-Events/events.html
Про объединение - используйте побитовые операции: http://javascript.ru/basic/operators#pobitovye |
trikadin объединять можно и суммируя)) А первую ссылку почитаю, вот еслиб ещё на русском статейку))
|
Мне кажется, здесь логичнее использовать побитовые операции, как тут (пример не совсем про эти константы, но похоже).
Цитата:
|
trikadin да побитовые они побыстрее, но главное не это.
Меня больше интересует что это за константы такие, зачем они, и какое им применение? По ссылки там где на английском я быстренько пробежался, но не нашел ни чего про эти константы. И ещё так сказать под вопрос, главный вопрос выделен, а это под вопрос: Можно ли какнить, склеить два события, например чтоб срабатывало и при клавиатурных, и при мышиных событий, и объект евент хранил данные и о мыши и о клавиатуре. Вариант повесить два события не годится, так как ЯваСкрипт одно поточный язык. |
Цитата:
Цитата:
Цитата:
|
trikadin Спасиб)
Как обойти я и сам думаю найти, а проблема такая: Есть 3d сцена в браузере, технология o3d от гугла, написал перемещение по сцене, w-вперед s-назад a-влево d-вправо. написал направление камерой которое мышкой регулируется, но когда и движение клавиатурой, и одновременно мышкой меняется направление, камера движется не плавно, а слегка рывками. вот это и надо обойти. Обходной путь в той или иной мере я сам найду, но вот еслиб можно из события мышки отслеживать и события клавиатуры, или наоборот, было бы очень удобно. |
Вряд ли это из-за событий) Просто браузер тормозит))
|
trikadin,
Это точно не браузер, браузер наоборот очень быстро всё делает. дело в том что: 1.событие клавиатуры, координаты камеры сместить. 2.событие мыши, повернуть камеру. эти события наступают чередуя друг друга. из за этого эффект дребезжания. если они будут наступать одновременно тогда будет плавное движение. другими словами должна быть такая последовательность, смешение - поворот - кадер - смешение - поворот - кадер. А НЕ смешение - кадер - поворот - кадер - смешение - кадер - поворот - кадер. |
Ну... Выворачиваться разными методами. Ставить флаг, и если флаг, то вместе, если не флаг, то не вместе...
|
нужно отделить рендерера от управлятора. при получении событий пересчитываем координаты , но не рендерим. каждые 20мс вызываем рендер, который забирает координаты и рисует картинку
|
далее, если ты вешаешься на keypress, то это плохая затея. нужно при keydown включать движение, а по keyup выключать. и включённом, допустим, каждые 10 мс инкрементировать
|
Часовой пояс GMT +3, время: 19:46. |