Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обект события. (https://javascript.ru/forum/misc/18659-obekt-sobytiya.html)

RX200 10.07.2011 15:11

Обект события.
 
Здравствуйте, прочитал весь цыкл статей 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
и.т.д.
Вот меня и интересует что это за константы и как их использовать?
ведь судя по ним(их значениям) их можно объединять.

trikadin 10.07.2011 15:26

http://www.w3.org/TR/DOM-Level-2-Events/events.html

Про объединение - используйте побитовые операции:
http://javascript.ru/basic/operators#pobitovye

RX200 10.07.2011 15:45

trikadin объединять можно и суммируя)) А первую ссылку почитаю, вот еслиб ещё на русском статейку))

trikadin 10.07.2011 16:26

Мне кажется, здесь логичнее использовать побитовые операции, как тут (пример не совсем про эти константы, но похоже).

Цитата:

Сообщение от RX200
еслиб ещё на русском статейку))

Читать спецификацию на русском - зло)

RX200 10.07.2011 17:30

trikadin да побитовые они побыстрее, но главное не это.
Меня больше интересует что это за константы такие, зачем они, и какое им применение?
По ссылки там где на английском я быстренько пробежался, но не нашел ни чего про эти константы.
И ещё так сказать под вопрос, главный вопрос выделен, а это под вопрос:
Можно ли какнить, склеить два события, например чтоб срабатывало и при клавиатурных, и при мышиных событий, и объект евент хранил данные и о мыши и о клавиатуре.
Вариант повесить два события не годится, так как ЯваСкрипт одно поточный язык.

trikadin 10.07.2011 19:38

Цитата:

Сообщение от RX200
что это за константы такие, зачем они, и какое им применение?

Да масса вариантов. Если вы фаербагом смотрите, это могут быть gecko-свойства, которые поддерживаются только firefox, ну и браузерами на движке gecko, соответственно. Или ещё что-то. Какие константы, которые нужны самому браузеру. Оно вам нужно, скажите?

Цитата:

Сообщение от RX200
Можно ли какнить, склеить два события, например чтоб срабатывало и при клавиатурных, и при мышиных событий, и объект евент хранил данные и о мыши и о клавиатуре.

Нет, если я правильно понял, о чём вы говорите. Если вы дадите больше информации, я скажу, как это можно обойти.

Цитата:

Сообщение от RX200
Вариант повесить два события не годится, так как ЯваСкрипт одно поточный язык.

Однопоточный-то он однопоточный, да не совсем)

RX200 10.07.2011 20:58

trikadin Спасиб)
Как обойти я и сам думаю найти, а проблема такая:
Есть 3d сцена в браузере, технология o3d от гугла,
написал перемещение по сцене, w-вперед s-назад a-влево d-вправо.
написал направление камерой которое мышкой регулируется, но когда и движение клавиатурой, и одновременно мышкой меняется направление, камера движется не плавно, а слегка рывками. вот это и надо обойти. Обходной путь в той или иной мере я сам найду, но вот еслиб можно из события мышки отслеживать и события клавиатуры, или наоборот, было бы очень удобно.

trikadin 10.07.2011 21:03

Вряд ли это из-за событий) Просто браузер тормозит))

RX200 11.07.2011 01:48

trikadin,
Это точно не браузер, браузер наоборот очень быстро всё делает.
дело в том что:
1.событие клавиатуры, координаты камеры сместить.
2.событие мыши, повернуть камеру.
эти события наступают чередуя друг друга. из за этого эффект дребезжания. если они будут наступать одновременно тогда будет плавное движение.

другими словами должна быть такая последовательность, смешение - поворот - кадер - смешение - поворот - кадер.
А НЕ смешение - кадер - поворот - кадер - смешение - кадер - поворот - кадер.

trikadin 11.07.2011 02:37

Ну... Выворачиваться разными методами. Ставить флаг, и если флаг, то вместе, если не флаг, то не вместе...

tenshi 11.07.2011 12:28

нужно отделить рендерера от управлятора. при получении событий пересчитываем координаты , но не рендерим. каждые 20мс вызываем рендер, который забирает координаты и рисует картинку

tenshi 11.07.2011 12:32

далее, если ты вешаешься на keypress, то это плохая затея. нужно при keydown включать движение, а по keyup выключать. и включённом, допустим, каждые 10 мс инкрементировать


Часовой пояс GMT +3, время: 19:46.