По поводу

Код AS3:
import flash.events.IEventDispatcher;
могу предположить, что import применяется для классов, а для интерфейсов в определении класса стоит добавить ключевое слово implements
когда Вы пишете

Код AS3:
object.addEventListener(event, handler)
1) должен существовать object
2) должен существовать event (хотя можно заменить его на new Event("some_string"))
3) должен существовать handler + он должен быть public
для организации подобного рода взаимодействия между объектами разных классов можно передавать ссылки в прописанные в объектах функции
Проще говоря, есть родительский объект A.
- В нем при создании дочернего объекта B мы регистрируем ссылку на B
- При создании дочернего объекта C мы регистрируем ссылку на C
- В самом объекте B мы диспатчим некое событие, а в родительском A его слушаем
- Когда событие услышано - вызываем нужную функцию объекта C
Соответственно, одно условие: у объектов B и C должен быть общий родитель A