![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 59
|
2 caseyryan
чисто личное чувство эстетики негодует... я же говорю, просто искал еще возможные варианты |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Каждый раз, когда я читал упоминания о статических методах, то в них отзывались о них неоднозначно.
По этому я хочу спросить - на сколько код неправильный? package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var _viewManager:ViewManager; private var _subClass:SubClass; public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); _viewManager = new ViewManager(this); _subClass = new SubClass(); } } } package { import flash.display.DisplayObject; import flash.display.Sprite; public class SuperClass extends Sprite { public function SuperClass(type:SuperClass=null) { if (type) ViewManager.add(type); } } } package { public class SubClass extends SuperClass { public function SubClass(type:SuperClass=null) { super(this); } } } package { import flash.display.DisplayObject; import flash.display.DisplayObjectContainer; import flash.events.Event; import flash.events.EventDispatcher; public class ViewManager extends EventDispatcher { private var _doc:DisplayObjectContainer; private static var _storage:Vector.<SuperClass>; private static var _dispatcer:EventDispatcher; public function ViewManager(doc:DisplayObjectContainer) { _doc = doc; _storage = Vector.<SuperClass>([]); _dispatcer = new EventDispatcher(); _dispatcer.addEventListener(Event.CHANGE, addDoc); } public static function add(type:SuperClass):void { _storage.push(type); _dispatcer.dispatchEvent(new Event(Event.CHANGE)); } private function addDoc(event:Event):void { _doc.addChild(_storage[_storage.length-1] as DisplayObject); } } } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
То есть при создании нового экземпляра ViewManager статический _storage обнуляется? В чем прикол?
В семейке EventDispatcher вообще не смог разобраться. Вроде сам класс его наследует, но зачем то создает статическую композицию с левым экземпляром диспатчера, который к тому же выкидывается и заменяется свеженьким при каждом создании экземпляра класса... ничего не понял. Добавлено через 10 минут Цитата:
Кому нужен класс, делающий с родителями, что ему вздумается?
__________________
Reality.getBounds(this); |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Контейнер и его содержимое не должны находится в родственной связи это инцест какой-то
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Согласен, я переделал.
|
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Не должны в основном потому, что контейнер может наполняться и сторонними виджетами в т.ч., которые могут быть проксированны и иметь с контейнером только общий интерфейс.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|