Cairngorm - это микроархитектура MVC.
Прежде всего: вот документация для cairngorm 2.2.1 http://cairngormdocs.org/docs/cairngorm_2_2_1/index.html
CairngormEvent связан с ICommand методом addCommand класса FrontController,Поэтому всякий раз, когда вы выполняете SomeEvent (SomeEvent.GETDATA) .dispatch (), вы фактически выполняете метод execute () команды, связанной с SomeEvent.GETDATA контроллером.
Прослушивание событий из CairngormEventDispatcher не являетсялучшая практикаВы не должны вызывать CairngormEventDispatcher в любом случае, этот класс существует для правильной работы всей микроархитектуры.
Ваше представление (выпадающий список) должно автоматически реагировать на модель (результат веб-службы) (иличерез некоторый другой объект посередине [как puremvc делает])
Я предлагаю быстро решить вашу проблему с помощью cairngorm:
зарегистрировать веб-сервис в локаторе сервисачтобы иметь ссылку на него на уровне приложения (для этого просто создайте компонент mxml, расширяющий ServiceLocator, и поместите туда свой тег httpservice или webservice, а затем назначьте ему идентификатор)
создайте локатор модели (класс, в котором хранятся данные, извлеченные из Интернета) и пометьте список данных, который вы хотите отобразить в комбинированном списке, как [Bindable]
идентифицируйте связанную командус SomeEvent.GETDATA и:
- вызвать службу, зарегистрированную в локаторе службы, в исполненииМетод e
- реализует интерфейс IResponder (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/IResponder.html) для обработки результата службы (зарегистрируйте свою команду в качестве ответчика службы в методе execute)
в результатеметод анализа данных, которые вы вернули с сервера, затем сохраните их в локаторе модели (который может быть легко получен с помощью одноэлементного метода доступа)
в представлении (файл mxml, содержащийcombo), привяжите комбинированный поставщик данных к списку данных вашего локатора модели (сделав несколько привязок ранее), чтобы заставить его реагировать на изменения, произошедшие в модели.
получайте удовольствие;)