PDA

Просмотр полной версии : как контролировать event?


bastrakov
03.12.2009, 10:08
привет всем.

вопрос наверно обсуждался. подскажите, гуру.
как проконтролировать, что евент реально улетел?

т.е. я его создал, код написал, все вроде правильно, и инициализация класса эвента происходит. где мне посмотреть, что он именно "отдиспатчился"?

получатель его поймать не может. поэтому и спрашиваю.
заранее спасибо. во

Добавлено через 1 час 2 минуты
по результатам "штурма" проблемы, дописываю:

1) выходит, что контролировать, улетел или нет реально event - нельзя никак. код написал, и считай, что улетел. если кто знает, как это сделать - ткните пальцем. буду знать, как следить за event-ами. :-)

2) передать event из одного компонента в другой можно только в том случае, если они вложены (любое количество уровней). в противном случае, событие "пролетает мимо" слушателя-ловителя.

3) его можно поймать на уровне Application, и передиспатчить опять. но тут позникает проблема цикла, потому что сам Application опять его поймает. вообщем надо гасить и или вызывать другой, который будет передан другой ветке обьектов (или флаги клать, что тоже - шаманизм). в результате в логике "когда ловим и когда гасим" - запутался окончательно. :-)

4) kiss-метод - рулит! если вы скатились в что-то подобное - попейте чайку и взгляните на проблему с другой стороны. как в 3 - делать не надо. :-) во

udaaff
03.12.2009, 11:31
1) выходит, что контролировать, улетел или нет реально event - нельзя никак. код написал, и считай, что улетел. если кто знает, как это сделать - ткните пальцем. буду знать, как следить за event-ами. :-)
break point'ы в коде ставите, в дебагере отлавливаете, смотрите куда-что улетает.
trace() еще есть.
2) передать event из одного компонента в другой можно только в том случае, если они вложены (любое количество уровней). в противном случае, событие "пролетает мимо" слушателя-ловителя.

3) его можно поймать на уровне Application, и передиспатчить опять. но тут позникает проблема цикла, потому что сам Application опять его поймает. вообщем надо гасить и или вызывать другой, который будет передан другой ветке обьектов (или флаги клать, что тоже - шаманизм). в результате в логике "когда ловим и когда гасим" - запутался окончательно. :-)
Тут вам нужно почитать про событийную модель в ActionScript 3.0. Про event flow (поток событий) в частности.

bastrakov
03.12.2009, 15:04
есть некоторая разница, между созданием обьекта эвента, и диспатчем евента.
трейсы и брекпоинты в коде расставлены в достаточном количестве. :-) во