![]() |
|
||||||||||
|
|
|
|||||
|
Сомнительно.
А я дурак, я делаю одно событие с var info:Object={} куда пишу всё что сдумается. ![]() На самом деле просто посмотри, что ты там передаешь с событием. Например, количество игроков онлайн, открытые двери и год после рождества Христова. По сути, 3 разных переменных - totalOnline, openDoors, year, но ведь можно передать просто intValue, а в комментариях написать мол "а тут нам приходит..."
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Досточно public-ов. От геттеров проку нет, событие всё равно клонируется постоянно.
|
|
|||||
|
Клонируется то клонируется, но это при бабблинге или в разных обработчиках. Но ведь можно изменить данные, если кто-то его передиспатчит, или внутри одного обработчика, или при передаче ("по ссылке") куда-то.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
И что? Если вы хотите наступить на грабли, вы на них наступите. Причем самостоятельно.
|
|
|||||
|
Регистрация: 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) }*/ } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:58. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| flash , Лень , Проектирование , события |
|
|