Ладно. Теперь я расскажу, что имел в виду))

Код AS3:
// место где создаются кубики
var cube:MoneyCube = new MoneyCube();
_moneyCountBar.registerTrigger(cube);
// код в MoneyCountBar (панельке)
public function registerTrigger(trigger:IMoneyTrigger):void
{
trigger.addEventListener(GameEvent.MONEY_BONUS, increaseCount);
}
public function unregisterTrigger(trigger:IMoneyTrigger):void
{
trigger.removeEventListener(GameEvent.MONEY_BONUS, increaseCount);
}
Что за странная идея хранить ссылки на кубики в панельке? Их же потом не удалить.
Отписка нужна чтобы герой не получал бонусы, бегая по кубику взад-вперед))) Впрочем, для этого отписку можно вообще в хендлер события поставить, сделав кубики одноразовыми (до новой регистрации).

Код AS3:
Не морочте себе голову, подход с registerTrigger в данной ситуации ничего не дает
Демократия для политики. В программировании — иерархия. Кубики не обладают логикой, их много. "Много" не имеет права принимать решение. Панель одна, значит может хоть о чем-то думать. Поэтому кубики сообщают в штаб, а штаб решает что с этим делать, на основании указаний сверху в том числе.
У каждой задачи есть простое, очевидное и быстрое неправильное решение.
Потом разработчик говорит: "Вот посмотрите, я тут пару игр написал... Что? ООП? Нее... не слышал!"