![]() |
|
||||||||||
|
|||||
|
Lorem ipsum
|
Всем привет. Тут мелькала эта идея, но я шота не могу понять как сделать.
Входящие данные: 1. события разные. 99% — уже имеющийся в AS3 набор. 2. всплывать событиям придется в иерархии объектов типа EventDispatcher (?) 3. надо сохранить target нид хелп короч.
__________________
Поймай яблоко 2! |
|
|||||
|
[+1 28.12.10]
[+1 29.12.10] Регистрация: Aug 2006
Сообщений: 107
|
не совсем понятна задача.
чем EventDispatcher плохо? да target не получается заменять. мне тоже это показалось странным. нужно будет свои евенты наследовать и реализовывать. |
|
|||||
|
.
|
Всплытие нативно поддерживается только DisplayObject'ом (участвует его #parent). Можете построить аналогичную систему или стройте иерархию, используя базовыми классами Shape, Sprite, etc.
|
|
|||||
|
Lorem ipsum
|
Так вот и спрашиваю, как построить аналогичную систему =)
DisplayObject — крайний случай.
__________________
Поймай яблоко 2! |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Собственно, target можно хранить статически во время всплытия.
|
|
|||||
|
стервочка (я мужик)
|
etc нельзя. тогда произойдёт колапс, когда одно событие рождает другое.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А, ну да, простите.
|
|
|||||
|
Lorem ipsum
|
Теперь target всегда сохраняется при клонировании и его не нужно явно передавать в конструктор MyEvent()
package { import flash.events.Event; /** * ... * @author Vadim BELLinSKY */ public class MyEvent extends Event { private var _target:Object; public function MyEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, target:Object = null):void { super(type, bubbles, cancelable); this._target = target; } override public function clone():Event { return new MyEvent(super.type, super.bubbles, super.cancelable, this.target); } override public function get target():Object { return this._target ? this._target : super.target; } } } Вообще все затевается ради всплывания событий в дереве моделей... я начинаю думать, что это лишнее. Зачем какой-то модели следить не за непосредственно подопечными, а и за их подопечными. Ну т.е. если меняется дочерняя модель — событие CHANGE, на которое реагирет изменениями текущая модель, что вызывает тот же CHANGE уже для его родителя. Поправьте, есличё.
__________________
Поймай яблоко 2! Последний раз редактировалось Zebestov; 20.03.2011 в 16:34. |
|
|||||
|
стервочка (я мужик)
|
из последний 3х предложений не понял ничего.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|