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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.04.2013, 01:05
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 61  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Engine.gameStage.stage.addChild(this) лежит в конструкторе this
и на фига метод?

Старый 15.04.2013, 01:19
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 62  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Цитата:
и на фига метод?
ЧТо бы кто-то еще мог узнать что на сцену добавилась какая-то штуковина.

Правда я считаю что еще лучше когда компонент вью добавляет к себе в дисплей лист по событию от модели об изменении данных.
__________________
...

Старый 15.04.2013, 01:51
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 63  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
ЧТо бы кто-то еще мог узнать что на сцену добавилась какая-то штуковина. Это бы сцена сообщила если бы могла.

Старый 15.04.2013, 04:21
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 64  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Альтернатива накрытию спрайтом - ловить клики у контейнера приложения в capture-фазе и убивать их, если они идут куда-либо кроме контейнера модельных окон. Делается реально в две строчки (assuming we're inside some ModalWindowManager class):

Код AS3:
private function modalClick(e:MouseEvent):void{
    if(!this.modalModeActive) return;
    if(!this.modalContainer.contains(e.target)) e.stopPropagation();
}
__________________
тонкий тролль, осеянный благодатью

Старый 15.04.2013, 07:45
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 65  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Альтернатива накрытию спрайтом - ловить клики у контейнера приложения
Это не совсем альтернатива. Чаще спрайт ставится если нужно задний фон затемнить или размыть.

Старый 15.04.2013, 09:22
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 66  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Вот такой код ближе к правде.

Старый 15.04.2013, 10:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 67  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
С точки зрения других языков - синглтон в таком контексте - это скорее проблема, а не что-то желаемое. Часто проще добраться до статических свойств, и это упрощает планирование, но, например, мне недавно попалось описание автором проблем написания компилятора для языка Скала. Там он описывает первоначальный дизайн, в которм были статические поля, которые мешали создавать несколько сущностей компилятора одновременно (т.как это были мутабельные объекты - таблица символов генерируемая компилятором и т.п.). Мотивация для того чтобы так не делать, по крайней мере в Яве заключается в том, что несколько экземпляров одного и того же объекта могут быть созданы одновременно и это может значительно ускорить процесс компиляции, если возможно исходники разбить на группы. Кроме того, это так же значило, что компилятор можно было внутри Эклипса создать несколько раз - для проверки синтаксиса, для непосредственно компиляции и не знаю зачем еще - но мало ли.
И потом он еще долго описывает способы решения, и как им в итоге удалось этого избежать.

Так вот: скорее всего делать основной класс приложения синглтоном - это плохо, но иногда у этого не будет никаких негативных последствий. Сделав его синглтоном вы ничего не улучшите, но вот ухудшить можно вполне.
__________________
Hell is the possibility of sanity

Старый 15.04.2013, 11:29
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 68  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Соглашусь. Но это единственный профит. Тем более он никак не противоречит добавлению прозрачного (ну или не совсем прозрачного) спрайта под модальное окно.
Если правильно разруливать – тогда шейпа. Затемнение всегда окей )
Цитата:
Engine.gameStage.stage.addChild(this) лежит в конструкторе this
и на фига метод?
Инкапсулировать такую жуть Если такая запись у Вас не вызывает зрительного отторжения – ну что же, у всех своё чувство прекрасного.
Но вот из минусов:
1) Это DRY до тех пор, пока все модальные окна наследуются только от этого, у которого в конструкторе написано то-самое.
2) Это рушит парадигму обязанностей у объектов на уровне того, с чем работаем. Поясню: если есть некоторый ModalManager, который может добавлять IModal – то вся работа заканчивается на реализации интерфейса IModal. Какие кривости использует ModalManager – никого не волнует. А вот "вшивая" его в цепочку наследования – приходится ориентироваться на родительский класс, потому что это не какой-то там IModal, который никому плохо не сделает. Можно говорить о том, что AbstractModalWindow – тоже "пофиг" как работает, мол, работаем же со спрайтом "в черную", но вам же приходится ориентироваться при разработке на него.
3) Если требуется метод очищения всех модальных окон (предположим, их может быть стек) – вообще непонятно, чья обязанность.
4) Для стороннего разработчика – если всеми правдами-неправдами можно подогнать это под single responsobility – то под KISS – никогда.
5) А как насчет модальности не для stage?
6) Реиспользуемость кода – отсутствует. Прямая связанность с каким-то Engine.
7) Для каждого показа модальное окно нужно пересоздавать.

Старый 15.04.2013, 12:00
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 69  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Кто кого куда вшивает и где вы увидели наследование в композиции? Использовать интерфейсы при наследовании запредельно оригинально.

Старый 15.04.2013, 12:05
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 70  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
А, так у Вас в каждом модальном окне
Цитата:
Engine.gameStage.stage.addChild(this) лежит в конструкторе this
Всё стало понятней. Спасибо за дискуссию )

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

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

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


 


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


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