Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.06.2012, 13:42
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 21  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от garymar Посмотреть сообщение
Все равно мне кажется это спорный вопрос... Если приложение нуждается в доступе к stage, то нужно его в любом случае передавать. Я встречал много уроков толковых разработчиков где передавали stage в другие классы (Например при использовании box2D...)... Или например, как мне получить свойства stage из другого класса... В этом случае нужно передавать stage в другой класс... А иначе как?
Между прочим тот же самый Box2D прекрасно отображается в любом DisplayObject, и конкретно Stage ему совершенно не нужен.

Выше уже писали о том что несомненно без stage приложение не будет иметь отображения. Но речь идет не о том чтобы отказаться от использования stage, а о том, чтобы добавлять на stage уже готовые контейнера с программой.

Лично я при разработке например игры, всегда свожу к тому, что у меня есть только один главный визуальный объект, который добавлен на stage. Например это класс Game. Который уже в свою очередь содержит контейнера Status, Player, Controller, Map и прочие.

Я всегда могу сделать любые операции с моим визуальным объектом Game. Например добавить сверху рекламу, или какие-то другие элементы. Не затрагивая основной класс игры.

Добавлено через 4 минуты
Цитата:
Сообщение от a_[w] Посмотреть сообщение
Верно, по большому счёту нет дела. Моя задача указать как пользоваться и что делать нельзя. Вероятность того, что он полезет на стейдж _значительно_ меньше, чем вероятность добавления детей в рут.
Забудьте слово root. У вас всегда должен быть главный контейнер приложения. И это не должен быть stage.
Неужто вам так тяжело всю программу просто обернуть еще в один класс?
__________________
adobe AS3 manual

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

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

Старый 22.06.2012, 14:41
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 23  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Wolsh, но увы. Вас не слышат)
__________________
adobe AS3 manual

Старый 22.06.2012, 15:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 24  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Сообщение от garymar Посмотреть сообщение
Wolsh, по сути вы предлагаете создать какой-то контейнер и работать полностью с ним? Я правильно понял?
Смотря о чем речь)))
Если вообще, то такой контейнер уже есть — рут, он же "экземпляр класса Документа" (к слову в AS3 понятие root вполне кошерное, в отличие от AS2, и не надо его бояться). Он добавляется на стейдж автоматически и в нем то и должно содержаться всё приложение. То есть я, напрмер, помещаю экземпляр Основного класса Приложения (скажем, Game) в этот контейнер (пример причины "зачем так" указал strangedk).
Если же речь о "слоях", как в случае с компонентами, то ДА, я бы делал контейнер для всей этой братии и позволил разработчику на свое усмотрение располагать этот контейнер и заботиться о его "всплывании", если в этом есть необходимость. По-моему, любой разработчик, создающий архитектуру "слоистого" приложения вполне отдает себе отчет, что такое приложение сразу, изначально делится на специальные контейнеры-слои, сразу и навсегда размещаемые в нужной последовательности по глубине. То есть курсоры (сейчас это не так актуально с новыми возможностями "честной" замены курсоров, ну допустим не курсоры а перетаскиваемые драгом объекты) помещаются в контейнер "на самом верху", под ним контейнер для модальных окон, ниже — для подсказок-хинтов и в самом низу — непосредственно интерфейс приложения. Как-то так в общих чертах.
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.