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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.07.2011, 19:32
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 1  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от RaVeN-Nikma Посмотреть сообщение
Чем вреден статический Stage?

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

Старый 11.07.2011, 19:54
RaVeN-Nikma вне форума Посмотреть профиль Отправить личное сообщение для RaVeN-Nikma Посетить домашнюю страницу RaVeN-Nikma Найти все сообщения от RaVeN-Nikma
  № 2  
Ответить с цитированием
RaVeN-Nikma

Регистрация: Jan 2003
Адрес: Latvia, Riga
Сообщений: 161
Частая ситуация, делаешь скроллер и нужно отрабатывать stopDrag(); когда срабатывает событие MouseEvent.MOUSE_UP, нужен глобальный MOUSE_UP, а не над объектом

И все же Вы не объяснили чем плох статичный stage, кроме как то что он плох. Есть ли какие-нибудь причины почему так нельзя делать, не касающиеся стиля программирования.

П.С. Stage существует всегда, хранить поинтер на постоянно существующий объект признак грамотного программирования, я так считаю...


Последний раз редактировалось RaVeN-Nikma; 11.07.2011 в 19:59.
Старый 11.07.2011, 23:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
RaVeN-Nikma, нельзя, потому что не находящиеся в display list объекты вообще не должны ничего делать. Ссылка на stage у вас будет, подписывайтесь на здоровье, потом отпишитесь точно также.
Однако, если вам наплевать на расход памяти и в вашем коде removeEventListener встречается на порядок реже addEventListener, вы можете пользоваться любым удобным для вас способом.

me2, выбор очевиден, действительно. Для узкомыслящих.

Старый 12.07.2011, 00:00
RaVeN-Nikma вне форума Посмотреть профиль Отправить личное сообщение для RaVeN-Nikma Посетить домашнюю страницу RaVeN-Nikma Найти все сообщения от RaVeN-Nikma
  № 4  
Ответить с цитированием
RaVeN-Nikma

Регистрация: Jan 2003
Адрес: Latvia, Riga
Сообщений: 161
Цитата:
Однако, если вам наплевать на расход памяти и в вашем коде removeEventListener встречается на порядок реже addEventListener, вы можете пользоваться любым удобным для вас способом.
Если удалять листенеры объекта после его ухода со сцены, то никакого дополнительного расхода памяти не будет, этот момент косвенно касается статичного хранения ссылки на stage, и видимо все возвращается к первоначальному: "кому как удобно", и слово нельзя тут не уместно.

Спасибо за дискуссию

Старый 12.07.2011, 00:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от RaVeN-Nikma Посмотреть сообщение
Если удалять листенеры объекта после его ухода со сцены, то никакого дополнительного расхода памяти не будет, этот момент косвенно касается статичного хранения ссылки на stage, и видимо все возвращается к первоначальному: "кому как удобно", и слово нельзя тут не уместно.

Спасибо за дискуссию
Не возвращается, открытые и доступные всем и вся ссылки на stage — потенциальная недоработка.

Старый 12.07.2011, 00:11
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 6  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Все можно когда пишешь код один, но когда пишет группа, то статичные объекты, да ещё которые можно изменить - это зло.

Старый 12.07.2011, 12:09
RaVeN-Nikma вне форума Посмотреть профиль Отправить личное сообщение для RaVeN-Nikma Посетить домашнюю страницу RaVeN-Nikma Найти все сообщения от RaVeN-Nikma
  № 7  
Ответить с цитированием
RaVeN-Nikma

Регистрация: Jan 2003
Адрес: Latvia, Riga
Сообщений: 161
Цитата:
Сообщение от Bgg Посмотреть сообщение
Все можно когда пишешь код один, но когда пишет группа, то статичные объекты, да ещё которые можно изменить - это зло.
Риторическое отступление:
На что можно изменить public static STAGE:Stage, кроме как на Stage или null, да и зачем его вообще менять, даже работая в команде. Вы же не работаете в кругу врагов, которые так и мечтают из своего класса в main.as в STAGE поставить null, чтобы все сломать )))

Что касается в общем статичных переменных, то тут пожалуй соглашусь.

Старый 12.07.2011, 12:36
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 8  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от RaVeN-Nikma Посмотреть сообщение
Риторическое отступление:
На что можно изменить public static STAGE:Stage, кроме как на Stage или null, да и зачем его вообще менять, даже работая в команде. Вы же не работаете в кругу врагов, которые так и мечтают из своего класса в main.as в STAGE поставить null, чтобы все сломать )))
У Stage есть свойства которые можно изменять. Stage полон событий, на которые можно подписаться и забыть отписаться.

Статичный Stage это лень. Из-за него появляется сильное связывание, и классы становятся привязанными к своему месту. Мелкое обновление архитектуры повлечет за собой перетаскивание статичных ссылок.

Цитата:
У меня статическая ссылка на сцену используется для добавления разных окошек с предупреждениями, которые сами добавляются поверх всего остального, и сами же полностью удаляются при нажатии кнопки подтверждения.
А ещё удобнее сделать контроллер окон, который бы ловил всплывающие события от окон и решал закрывать окно или нет.

Старый 12.07.2011, 12:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
me2, слишком толсто, маловато огня.

Старый 12.07.2011, 12:19
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
etc, а в что, действительно, плохого в использовании статической ссылки на stage?
У меня статическая ссылка на сцену используется для добавления разных окошек с предупреждениями, которые сами добавляются поверх всего остального, и сами же полностью удаляются при нажатии кнопки подтверждения. Не буду утверждать, что это лучший, или даже один из лучших методов, но он однозначно удобен.
П.с. А во избежание зануления ссылки, можно использовать private static var и назначать ее сеттером, в котором проверять новое значение не валидность


Последний раз редактировалось goodguy; 12.07.2011 в 12:26.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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