Actionscript 3 - нормально ли иметь кучу кода внутри обработчика событий? - PullRequest
0 голосов
/ 14 января 2012

Я создаю графический интерфейс, но только если все идет хорошо, поэтому я могу

добавитьEventListener (Event.Complete, go) к чему-то и в функции go создать мой графический интерфейс (графические элементы, такие как метки), списки, квадраты)?

Это нормально делать?

Ответы [ 2 ]

3 голосов
/ 14 января 2012

Технически это нормально.crooksy88 дает хороший пример предоставления значения по умолчанию для параметра события, чтобы сделать функцию более универсальной.

Однако, ради семантики, ясности и обслуживания, я обычно предпочел бы разделить вещи больше.Так что мой может быть настроен примерно так:

protected function onLoadComplete(e:Event):void {
    initAppSettings();
    createUI();
    startApp();
}

Это значительно облегчает понимание потока приложения и того, что делает каждая часть, просто читая имена функций.Когда я вернусь к этому позже, я буду знать, что мой пользовательский интерфейс создан в функции с именем createUI, и мне не придется выяснять, что он создается в обработчике событий с загадочным именем, например go или handleEvent.

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

1 голос
/ 14 января 2012

Да, это прекрасно. Функция go не является частью прослушивателя событий.

function go(e:Event):void {
// do something
}

В приведенном выше примере требуется параметр события от слушателя (e: Event).

Но вы можете изменить функцию так, чтобы параметр был необязательным, чтобы вы могли вызывать функцию go в любое время

function go(e:Event = null):void {
// do something
}

Пример выше будет вызван слушателем, а также наберет

Go ();

...