![]() |
все очень просто.
у автора стоит абсолютно рабочий код dispatchEvent(new Event(Region.CLICK_REG1)), который почему-то не работает. что делает разумный человек? наверное, он проверяет, а приходит ли управление в это место кода - в данном случае, отрабатывает ли метод onClick в классе Region. как он это делает? например, он ставит трейс перед фрагментом кода, который не отрабатывает (что я, собственно, и предложил автору) почему я считаю, что код рабочий? потому что я взял код автора, переименовал метод с неработающим dispatchEvent(new Event(Region.CLICK_REG1)), вызвал его напрямую и все отработало (см. приведенный фрагмент кода) |
Метод onclick в Регионе срабатывает. В этом проблем нет. Но не вызывается в главном классе.
Я еще раз все переписал и откомпилил. |
Код AS3:
|
Тут проблема в следующем. У тебя главный класс создает экземпляр класса Region. В главном классе ты вешаешь обработчик события. Но ты ведь на сцену не добавляешь Region объект. А в Region ты написал, что как только ПО НЕМУ кликнуть, то диспатчится событие. А как же ты по нему кликнешь, если его нету на сцене? ))) раз его нету на сцене, то кликнуть по нему ты не можешь и поэтому продиспатчить событие ты тоже не можешь. Тебе надо либо добавлять его на сцену в главном классе. Либо диспатчить не по клику, а в конструкторе, например.
|
Если диспатчить в конструкторе, то никогда не получится подписаться на событие до его диспетчеризации.
В конструкторе диспатчить события нельзя! |
можно :)
если слушать не на объекте, а на его родителе и баблинг поставить но не нужно |
Даже если слушатель на родителе - родитель возникает в момент addChild, что позже конструктора полюбому)
|
да, действительно ))
Нет, все-таки можно. Надо событие отправить на статическую переменную Main.instance (как пример) и ее же слушать. |
Давайте закончим с бредом.
Цитата:
правило: В конструкторе диспатчить события нельзя! |
Цитата:
|
| Часовой пояс GMT +4, время: 09:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.