Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Порядок обработки события (http://www.flasher.ru/forum/showthread.php?t=79573)

cassius 11.05.2006 08:00

Порядок обработки события
 
Такая ситуация.
Есть клипы (экземпляры одного класса). Имеется обработчик onMouseDown. На сцене клипы могут перекрываться друг другом.

Вопрос: каким образом можно сделать, чтобы 1-м обработал onMouseDown клип, который перекрывает все остальные?

AlexSol 11.05.2006 10:47

если onMouseDown привязан к клипу, то так и будет, еси к _root, то смотри глубину. возможно лучшим решением будет помещать наверх именно тот клип, на который был клик подобное реализовано здесь:
[ваш диск]:\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\Behaviors\BehaviorsScrapbook

cassius 12.05.2006 04:23

onMouseDown был привязан к клипу, но все ровно порядок обработки был не тот, т.е. сначала событие мог поймать клип, находящийся ниже другого (думаю из-за того, что использовался swapDepth)

Проблема решена путем замены onMouseDown на onPress :)

Antares 12.05.2006 04:36

MouseDown -- событие глобальное
Применяем onRelease для верхнего объекта, потом делаем event bubbling, либо ручной вызов для всех прочих.

KPaul 12.05.2006 13:11

2Antares
Цитата:

потом делаем event bubbling
Мне кажеться здесь нужно говорить о event capture, так как подразумевается распространение от корня, bubbling же наоборот.
И для того чтобы применять такие умные вещи :), для начала нужно организовать иерархию, например с отношениями чилд-парент...


Часовой пояс GMT +4, время: 00:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.