Начиная с
мая 2012 в Starling начали использовать паттерн - объектный пул для событий (Event). Теперь каждая отправка сообщения не создает новый экземпляр, а использует существующий. Вот короткий пример:
//по-старинке. Создаем экземпляр
dispatchEvent(new Event(Event.COMPLETE));
//по-новому. Event будет взять из пула объектов
dispatchEventWith(Event.COMPLETE);
Еще один повод начать использовать Starling Events а не Signals Robert Penner-а. И вот
неделю назад Джош (создатель Feathers) перешел с Signals на Event-ы от Starling. Но не стоит забывать о одной проблеме пула объектов и событий, - после отправки Event-а в свободное плаванье, исходный объект перестает как либо контролировать жизненный путь экземпляра Event-а, поэтому есть шанс с вероятностью отличной от нуля, что этот Event попадет в руки 2х разных процессов, которые станут совместно владеть Event-ом, не подозревая об этом. Единственный выход,- не хранить указатели на Event-ы.