![]() |
Собственные события
Доброго.
Начал читать про собственные события, гугл/Мук, но что-то я до конца так и не понял что и как работает. Вот отрывок из Мука Код AS3:
|
Код AS3:
Код AS3:
|
Цитата:
Цитата:
Добавлено через 3 минуты Код AS3:
Мы же только тут и задаём значение "toggle", тут ведь можно написать что угодно? |
Цитата:
Цитата:
Код AS3:
Цитата:
|
Цитата:
Цитата:
Код AS3:
Цитата:
Добавлено через 48 секунд P.S. Как мы синхронненько :) |
спасибо, господа, что-то начинает прояснятся.
Вот код следующего класса из Мука, тот же пример идёт Код AS3:
|
Цитата:
Выходит, что при "щелчке" (вызове vетода toggle) согласно архитектуре приложения-примера из книжки нужно всякий раз сообщать всем заинтересованным*, что isOn сменил значение, и, что самое важное, еще и указать, какое именно значение сейчас имеет этот самый isOn. Это конечно лучше было сделать по-другому (в данном случае). Но для примера автор решил показать, как можно это значение передать через кастомное событие, которое не только сообщает смене значения определенного поля, но и содержит это значение. * Под заинтересованными понимаются все, кто подписался на это событие от этого экземпляра класса ToggleSwitch или кого-то из его родителей, потому что ToggleSwitch наследуется от Sprite, а событие посылается с разрешением на "всплытие" — второй аргумент в конструкторе new ToggleEvent(…) — true. |
Цитата:
|
Мне кажется, это вопрос скорее о телепатии. Вопрос о том, откуда берутся события. Поскольку до того, как впервые сделать своё собственное событие, мы только ловили уже готовые, непонятно откуда взявшиеся, у многих новичков есть такое интуитивное "понимание", что события сами собой возникают и рассылаются "на каждый чих", типа — поменяли координату у клипа на 1 пиксель — можно поймать какое-то событие об этом в другом месте (подразумевается "в любом другом месте" ;) ), надо только понять, какое)) Необходимость посылать свое событие "вручную" кажется какой-то нелепостью, ведь до этого события нужны были, чтобы о чем-то "узнать", а тут получается какая-то "бессмысленная" система — узнал о чем-то –> послал событие. Потому что мозг еще не думает о том, что находится вне класса, о том что кто-то ТАМ хотел бы тоже "узнать" и именно для них мы создаем и посылаем Событие.
и да, функция таки должна называться switch (переключить, поменять состояние), а не toggle (традиционно используется для указания, что нужно сохранить, зафиксировать состояние) |
Wolsh значит вариант телепатии прокатит, если в класс добавить слушатель, к примеру, энтер_фрейм, с помощью которого мы будем проверять, поменялся ли isOn, и в случаи изменения - диспатчить событие, так? Я хочу уменьшить зависимости кода, как вариант правильно?
|
| Часовой пояс GMT +4, время: 17:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.