Показать сообщение отдельно
Старый 16.08.2014, 00:50
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 18  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Жаль, я не обладаю способностями подавать информацию в учебной и легко усваиваемой форме. Смысл в том, чтобы правильно расставить "логическую вложенность". У Вас есть вполне конкретная задача: писать лог в текстовое поле. Туда могут лететь не только сообщения из коннектора к циррусу, но и всякая системная информация (например ровно в 00:00 надо написать "чувак, тебе завтра на работу, иди спать", а в 08:00 надо показать "с добрым утром").

Начальной точкой отправления мы имеем экземпляр главного класса. В нем создается экземпляр коннектора, экземпляр класса с таймером (и этими милыми лог-сообщениями) и экземпляр класса с отображением текстфилда, скроллбаром к нему, красивым фоном (этот экземпляр отображения добавлен в дисплейлиста экземпляра главного класса).

Как только в циррус-коннекторе что-то произошло (например кто-то подключился), он диспатчит событие "кто-то подключился" (кастомное событие) и прикладывает к нему какие-то данные (например айпи человека). Это событие ловит экземпляр главного класса и вызывает метод у экземпляра с отображением, передавая в него данные из события. Тот радостно хватает и отображает в нашем навороченном текстфилде лог-строку.

Далее, экземпляр класса с сигналами таймера (которые в 00:00 часов и 08:00) видит, что наступило время Х. И тоже шлет кастомное событие. Это событие тоже ловит экземпляр главного класса и вызывает какой-то другой метод у экземпляра с отображением, передавая (или не передавая) в параметрах необходимые данные.

Вот и все.

Далее, Вам захочется сделать, например, кнопку дисконнекта. В отображении делаем кнопку, нажатие на которую диспатчит какой-то иное событие "хочу_дисконнект". Экземпляр главного класса его ловит и вызывает метод у циррус-коннектора, который сделает дисконнект.

Циррус-коннектор следом шлет свое событие, которое так же через экземпляр главного класса попадает в отображение через вызов метода и вот в текстфилде красуется строка "дисконнект успешен" или сообщение об ошибке.

Фуф, надеюсь доходчиво объяснил. никаких MVC, просто разделение логики без жестких связей.

Добавлено через 1 минуту
Цитата:
Сообщение от Gerbert Посмотреть сообщение
ТС могу лишь сказать, что документ-класс, каковым является Main, не принято использовать для инициализации свойств и прочих ... прочих объектов связанных с приложением. В нем нужно лишь инициализировать класс, который будет создавать другие объекты и если нужно, передавать ссылки друг на друга в конструктор или ещё как-то..
Неверно, это заблуждение. Чем Вам документ класс не угодил и чем он отличается от "другого экземпляра класса", который Вы советуете в нем создать?

Добавлено через 10 минут
А еще можно, чтобы экземпляр главного класса был более тонкой прослойкой, если написать в нем:
Код AS3:
cirrusConnector.addEventListener(CirrusEvent.SOME_EVENT, view.onSomeEventCirrusEvent);
То есть событие сразу попадает в хендлер отображения без необходимости экземпляра главного класса собственноручно принимать событие и вызывать метод у отображения. Все зависит от удобства и контекста. Может быть Вы захотите сделать экземпляр главного класса не просто связующим звеном, а непосредственно центром логики — контроллером.
__________________
тут я