|
Modus ponens
модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
|
Ну можно это представить так:
стейдж - единственный, кто регистрирует на события, т.е. все клики происходят на стейдже.
далее, стейдж идет по видимому дереву объектов и проверяет, а является ли объект интерактивным, а находится ли он в зоне клика.
вот это и будет фаза "захвата" события.
Когда у объекта не остается интерактивных детей удовлетворяющих условию положения мыши, при том, что этот объект является верхним с точки зрения Z-индекса, то он назначается целью события - это и будет фаза "цель".
Ну и дальше это событие опять раздается всем объектам-родителям и прародителям целевого объекта - это фаза "всплытия".
По идее, фазу захвата вообще-то лучше было бы спрятать, именно потому, что если этот процесс остановить, то целевой объект может не получить событие. Но тут опять же есть подводные камни - иногда хочется одним махом запретить получать мышиные события всем элементам, или, если не запретить, то остановить - ну те же модальные окна, например. Ну и тут же спорный вопрос, а на сколько приложение в праве решать что делать стейджу, т.е. а хорошо ли это, если какое-нибудь загруженое приложение сможет следить за логикой событий загрузившего приложения и т.п. Не знаю, я не думаю, что тут возможен однозначный ответ, но, мне кажется, что запрещать по умолчанию с возможностью разрешить, если потребуется был бы оптимальный вариант.
__________________
Hell is the possibility of sanity
|