|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
По моему скромному мнению, если у нас нет жестких ограничений по производительности, то чем полнее информация в событии, тем лучше. Все-таки xml/json рулит по сравнению с набором безымянных чисел, всплывших неизвестно откуда и неизвестно по какой причине.
Продал твой фермер корову вместе с попоной на колбасу, сервер вернул информацию о том, что сделка акцептована, ты сформировал хорошее такое событие с xml-кой внутри, прогнал его не задумываясь по всем объектам (касса, хлев, склад, производственный план, что там еще), и все счастливы. Каждый объект взял из него то, что его касается, и все аккуратненько и синхронно обновилось. Но, это лично мне так нравится. Совсем не обязательно, что так правильно. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
mikhailk, у нас речь не о обмене сервер-клиент, а о событиях в самой флешке. Наследники flash.events.Event так сказать)
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
ветеран форума
|
Если все события генерирует один объект, то можно предположить, что все параметры передаваемые через события как то связаны или имеют принадлежность к какой то сущности. Можно сделать и один класс события в котором будет один параметр представляющий собой класс, который содержит в себе нужные строго типизированные свойства (т.н. value object). Т.е решение подобное ому как делает Psycho Tiger, только не в ущерб типизации, автокомплита и т.д.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
|
2 Mur4ik:
Как мне кажется, ваш вариант подходит в том случае, если этот объект с типизированными переменными будет использоваться ещё где-нибудь (допустим его будут передавать в качестве параметра для создания объектов на основе этого объекта), иначе, как мне кажется, нет смысла переносить список переменных из Event объекта в какой-то другой объект, потому что по сути добавляется только 1 промежуточный этап на пути доступа к переменным. |
|
|||||
ветеран форума
|
Не спорю.
Просто если параметры передаваемые событием связаны, то мне удобнее видеть их в одном объекте, который их характеризует, вместо того чтоб в классе события создавать 5-10 параметров, с которыми работа только усложняется, особенно в случае когда нужно передать большую часть из этих параметров (имеется ввиду инициализация события). А вот имея один-два типизированных объекта все становится прозрачнее и удобнее, ИМХО.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
Регистрация: May 2009
Сообщений: 220
|
Цитата:
Цитата:
Если все правильно про клонирование, то как/когда это происходит при нативном всплытии события? Вот пример того, что наблюдаю я: package { import flash.display.Sprite; import flash.events.Event; public class Example extends Sprite { private var _event:MyEvent; function Example() { super(); var s1:Sprite = new Sprite(); var s2:Sprite = new Sprite(); var s3:Sprite = new Sprite(); super.addChild(s1); s1.addChild(s2); s2.addChild(s3); s1.addEventListener(Event.CHANGE, this._test1); s2.addEventListener(Event.CHANGE, this._test2); s3.dispatchEvent(new MyEvent(Event.CHANGE, true)); } private function _test1(e:MyEvent):void { trace(e.info); //10 trace(this._event === e); //true } private function _test2(e:MyEvent):void { trace(e.info); //5 e.info = 10; this._event = e; } } } package { import flash.events.Event; public class MyEvent extends Event { public var info:int; function MyEvent(type:String, bubbles:Boolean = false, info:int = 5, cancelable:Boolean = false) { super(type, bubbles, cancelable); this.info = info; } // монжно раскомментить - трейсы те же. /*override public function clone():Event { return new MyEvent(super.type, super.bubbles, 20) }*/ } } |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: May 2009
Сообщений: 220
|
да, при редиспатче поюзанного эвента - он клонируется. Видимо, идет проверка а-ля:
Благо EventDispatcher и Event лежат в одном пакете. Однако, это домыслы, ибо неизвестно, что в тамошних сях записано. Но не суть. Из контекста приведенных мною цитат ниразу не понятно, что идет редиспатч. Скорей наоборот - речь об обычном распространении события. А при нем, как показывают тесты, клонирования события от обработчика к обработчику не происходит. Собственно, по этому поводу я и ожидал комментариев. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Событие клонируется при нативном EventDispatcher::dispatchEvent`е.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 12:30. |
|
« Предыдущая тема | Следующая тема » |
Теги |
flash , Лень , Проектирование , события |
Опции темы | |
Опции просмотра | |
|
|