|
|
|||||
Нет, не согласен. Внутри функции _onClose может быть повторное открытие окна и новая инициализация _onClose. А мы взяли, и обнулили...
__________________
Искренне Ваш, Джек. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Шобытие?)
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Вот Вам пища для размышлений:
Главное окно при открытии попапа блочится, менеджер окон, которые эти окна открывает добавляет окна в очередь - закрыл одно, открыл другое, а игра ставится вовсе на паузу когда всплывает такое окошко. Уже 3 элемента нуждаются в событии от окон. Конечно, можно заставить событие слать менеджер окон, или ещё лучше - окно дёргает метод менеджера окон, тот дёргает метод логики игры, а тот дёргает метод блокировки экрана... но помилуйте. В командной разработке я бы за такое вставил: Если так хочется не создавать эвенты - есть слот-сигнал.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
2Psycho Tiger:
- скомпилится прекрасно, и никаких варнингов не будет. - а вот так, не скомпилится... Кстати, оффтоп. В c# нельзя написать вместо ... Но, если вы обратите внимание, сравнение с null было сделано только в одном месте, там где сравнивался указатель на функцию... Менеджеров окон на AS3 пока не писал, не было потребности... Вероятно если бы был, реализация была иной, не спорю... Честно, не знаю, что есть slot signal, но в данном случае событие не возможно, потому что не на что подписываться. Конечный потребитель не имеет указателя на MsgBox. Пример слабой связности...
__________________
Искренне Ваш, Джек. |
|
|||||
Цитата:
Будет предупреждение. Насчет сравнения, это наиболее корректный вариант проверить существование ссылки на функцию. По поводу финта полностью согласен Вообще за шесть страниц непонятно чего, так и не увидел ниодного аргумента в пользу callback'ов. Единственный аргумент: "можно написать в одну строчку". На этом обсуждение можно было и закончить. Добавлено через 3 минуты Цитата:
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
JackFromChaos, у меня совершенно идиотский вопрос.
Что такого делает Ваш навороченный вариант, чего не делает вот этот тупой как пробка? package classes.userInterface { import flash.display.*; import flash.events.*; public class Alert extends Sprite { private static var popupContainer:Sprite; private var alertMC:AlertMC; public static function init(pContainer:Sprite) : void { popupContainer = pContainer; } public function Alert(text:String) { if (popupContainer) { alertMC = new AlertMC(); alertMC.alertText.text = text; alertMC.addEventListener(MouseEvent.CLICK, closeAlert); addChild(alertMC); popupContainer.addChild(this); } } public function closeAlert(e:MouseEvent=null) : void { alertMC.removeEventListener(MouseEvent.CLICK, closeAlert); popupContainer.removeChild(this); } } } |
|
|||||
2alatar:
1) Не вижу ни одного реального аргумента, против callback... Реальные аргументы, только против анонимных функций... 2)Тема плавно сползла в обсуждение анонимных функций... Но спор действительно не конструктивен, а потому предлагаю эту тему закрыть... Добавлено через 3 минуты [quote=mikhailk;967735]JackFromChaos, у меня совершенно идиотский вопрос. Что такого делает Ваш навороченный вариант, чего не делает вот этот тупой как пробка? 1) Возможностью создать множество экземпляров... Есть реальный ситуации, где это не нужно, зачем засорять память лишним? Конкретно для MsgBox не так важно... 2) Разница связности классов... 3) Степени абстрагировании от реализации MsgBox... и инкапсуляции...
__________________
Искренне Ваш, Джек. Последний раз редактировалось JackFromChaos; 25.01.2011 в 13:31. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
PS: с занулением колбака внутри MsgBox все же соглашусь. Просто, просмотрев весь класс, не покидает чувство что "как-то все криво", не сочти за оскорбление.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
etc недавно дал пример сравнения на функцию.
По мне вот это корректней. Цитата:
Цитата:
Цитата:
В случае метода коллбеку передается хрен-знает-что, поэтому о связанности говорить вообще не стоит. Но я уже повторяюсь, да.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 01:27. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|