![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Вот мы все знаем, что есть Math.sin, и его пользуем в программе везде, где нам удобно.
А теперь представим то же самое, но функция асинхронна - синус считается на сервере и передается на клиента. И когда клиент получил значение синуса, то надо сгенерировать событие, которое бы прослушали все, кто подписан. То есть, с одной стороны, мы используем асинхронный синус на любом уровне ирреархии нашей программы, а с другой - сервер у нас один и соединение с ним одно. Вот как такое грамотно сделать? Такое даже через Singleton не получается, т.к. компилятор (по крайней мере у меня) ругается на dispatchEvent в статических функциях. А еще он ругается на попытку установить прослушиватель на события класса. |
|
|||||
|
ветеран форума
|
Сделать композицию с EventDispatcher-ом: создаем закрытый статический член - ссылку на eventdispatcher, и затем используем его. Тогда для логичности работы придется еще и делать статические методы, аналогичные методам IEventDispatcher
Цитата:
__________________
4am is time to rock |
|
|||||
|
заведите статическое свойство EventDispatcher. и к нему добавляйте слушателей и им генерируйте события
пример: public class MySuperMegaStatic { private static var _staticDispatcher:EventDispatcher = new EventDispatcher(); public static function get dispatcher():EventDispatcher { return _staticDispatcher; } public static function superMegaSinus(num:Number):void { //действия _staticDispatcher.dispatcheEvent(new Event("tra-ta-ta")); } }
__________________
я могу стать всем, если только захочу |
|
|||||
|
По вашей рекомендации и рекомендации Felicast получилось. Спасибо.
Цитата:
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 63
|
статическая
|
|
|||||
|
ветеран форума
|
а все остальные методы - нет, и поэтому он вполне успешно должен уметь диспатчить события, унаследовавшись от EventDispatcher-а. И работать с ним по схеме MySingleton.getInstance().addEventListener, MySingleton.getInstance().dispatchEvent
__________________
4am is time to rock |
|
|||||
|
как я понял, chabapok собирается использовать статические методы типа как в Math. следовательно ему вполне можно обойтись и без синглтона
__________________
я могу стать всем, если только захочу |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|