Вы можете передать «мостовой» интерфейс в ваши «модули», когда MainApp создаст их. Этот объект позволит модулю вызывать функции для отправки данных.
Так, например, если интерфейс модуля был
function get name() : String
function get version() : String
function performAction() : void // Blah blah
Вы можете расширить его, чтобы включить
function set mainAppBridge(bridge:MainAppBridge) : void
Интерфейс MainAppBridge может иметь такой метод, как:
function receiveResult(data:Object) : void
После того, как MainApp создаст «модуль», он вызовет set mainAppBridge
, передавая реализацию MainAppBridge. Затем модуль может свободно вызывать методы, доступные на этом мосту.
Поскольку все это делается с помощью интерфейсов, вы можете реализовать реальные функциональные возможности, как захотите.