Показать сообщение отдельно
Старый 13.04.2013, 00:30
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 22  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Имеется ввиду, если написать так в главном классе вместо просто addChild()?
На stage должен находиться только один объект — экземпляр Документ-класса. Он является Вашим приложением. И он контейнер (не может не быть контейнером). Все, что создается приложением, должно находиться в контейнере приложения, а не шляться где-то за его пределами.
Сама по себе запись stage.addChild() является командой от потомка родителю, что так же недопустимо. Потомок не должен вызывать методы родителя напрямую. Если родитель желает слышать голос ребенка, он подписывается на события от него и сам решает, что делать когда события приходят. Но ребенок никогда не должен принимать решения за родителя и делать что-то "от его имени". Приложение без иерархии превращается в бардак, а классы, желающие управлять своими родителями, непригодны для повторного использования в других проектах. Классы, выбрасывающие своих детей на Stage — тем более.
Многие используют этот трюк для добавления всплывающих окон и подсказок (а когда-то и курсоров), вместо того чтобы просто создать структуру глубины с помощью контейнеров-"слоев" в документ-классе. Это не более чем безалаберность и лень. Не делайте так. Не понимайте слова "добавить на стейдж" буквально. Это всегда подразумевает "добавить в список отображения". Stage — это плеер. И в плеере должен показываться только один объект — Ваше приложение. И все его дети должны находиться в ЕГО списке отображения.
__________________
Reality.getBounds(this);