Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Подписаться на событие визуального компонента, находящегося в другой ветке. (http://www.flasher.ru/forum/showthread.php?t=137637)

microed 18.03.2010 19:14

Подписаться на событие визуального компонента, находящегося в другой ветке.
 
Вот, глядя на событийную модель:

http://help.adobe.com/en_US/ActionSc...0204-7e4f.html

хочу спросить: как визуальная компонента Child2 Node может поймать событие от Child1 Node? Допустим, событие в Child1 Node генерируется свое, как:

dispatchEvent(new Event("MyEvent"));

CrazyFlasher 18.03.2010 19:42

в этой схеме Child2 ничего не должен знать о событиях Child1. Пусть Child1 диспатчит в Parent, а тот уже делает чё надо в Child2

microed 18.03.2010 19:47

Так и работает, но это коряво. Хочется в event'e передавать параметры в Child1.

expl 18.03.2010 21:40

как раз коряво как вы предлагаете:
тогда объекты Child2 и Child1 не возможно будет использовать по-одтельности

microed 18.03.2010 22:50

Цитата:

Сообщение от expl (Сообщение 894064)
как раз коряво как вы предлагаете:
тогда объекты Child2 и Child1 не возможно будет использовать по-одтельности

Если кто-то еще не понял, я спрашиваю про возможность широковещательной рассылки сообщений.

dimarik 18.03.2010 22:58

Ловите на capture phase.

microed 19.03.2010 00:43

Цитата:

Сообщение от dimarik (Сообщение 894085)
Ловите на capture phase.

Захват работает тоже в пределах одной ветки. Но пользу из этого всё-таки извлек: при использовании capture в корневом объекте можно не приписывать явно листинеры к дочерним объектам. А если нужно узнать, какой ребенок (не важно из какой ветки) прислал event, то уже в обработчике смотрим параметр 'taget' в объекте полученного события. Собственные параметры тоже получил.

Однако, в целом, это пока не решает проблемы, к сожалению.

wvxvw 19.03.2010 01:26

capture фаза - зло.
microed:
То, что вы пытаетесь сделать - противоестественно в данном контексте. Это что-то из серии:
- Доктор, мне больно, когда я так делаю!
- Пациент, перестаньте пожалуйста так делать.

microed 19.03.2010 02:09

С точки зрения наDOM'ной теории (DOM3 Event Model) - противоестественно, а с практической точки зрения - нет. По теории, секс, как средство получения удовольствия, тоже противоестественен, а вон поди ж куда всё ушло... мда. Кстати, можете подробнее про "зло"?

wvxvw 19.03.2010 05:09

capture - зло потому, что это нарушает инкапсуляцию, слава богу, это есть только у дисплей объектов. Аналогия с сексом тут как-то не пришей кобыле хвост... Просто проектировать надо так, чтобы таких ситуаций не было. Вы пытаетесь придумать решение проблеме, которой не должно было быть. Нужно ее устранить, а не придумать как с ней дальше жить.


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

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