Итого: +1 функция (новый обработчик).
addListener в одном месте, действие, которое может инициировать событие - в другом, обработчик события - в третьем, и после этого ещё и повторный вызов connect.
А теперь дальше.
QA посмотрели наше приложение и сказали: что-то слишком часто сообщение появляется. Надо сделать так, чтобы сперва делалось три попытки (молча), а если они не удались, то тогда уже показывать сообщение. Между попытками пауза 500 мс.
Сообщение должно теперь содержать YES и NO. Если отвечает YES, то снова делать три попытки.

Код:
var connected:bool = false;
var attempts:int=0;
do {
while (!connected && attempts<3) {
if (sock.connect()) {
connected = true;
} else {
attempts++;
sleep(500);
}
}
if (!connected) {
var answer = showMessage("Error", "Connection failed", [BTN_YES, BTN_NO]);
}
} while (!connected && answer == BTN_YES);
Уже чуть-чуть подлинее. Но порядок действий по-прежнему виден.
Ваш ход?