У меня есть команда, которая выполняет вызов службы. В обработчике результатов я выполняю некоторую логику на основе данных результата. Если логика соответствует определенным критериям, я показываю всплывающее окно с подтверждением. Если пользователь нажимает кнопку продолжения во всплывающем окне подтверждения, у меня вызывается метод, который отправляет событие Parsley. Это событие с петрушкой не улавливается. Однако, если я отправляю событие Parsley изнутри метода результата, оно перехватывается. Есть идеи, почему событие не перехватывается при его отправке извне метода результата?
Например...
[MessageDispatcher]
[Bindable]
public var dispatcher:Function;
Я выполняю служебный вызов изнутри команды:
public function execute(event:SomeEvent):AsyncToken
{
return service.callService(event.type, false);
}
Теперь у меня есть такой обработчик результатов:
public function result(data:Object):void
{
if (add some logic here based off data)
AlertHelper.showContinueQuestion(onSelection, "Are you sure you want to continue?");
}
Если пользователь нажимает кнопку «Продолжить» во всплывающем окне подтверждения, он вызывает метод onSelection:
private function onSelection():void
{
dispatcher(new SomeEvent(SomeEvent.UPLOAD));
}
Это событие Parsley, SomeEvent, не отслеживается. Однако, если я отправляю это событие после оператора if, оно перехватывается и работает нормально. Есть идеи, почему он не улавливается при отправке извне обработчика результата? Я пробовал и другие команды, и они делают то же самое.
onSelection()
вызывается и чтоdispatcher
не равно нулю? Обычно я использую отдельную команду для запуска предупреждения ... то есть в обработчике результатов вы отправляете событие show alert. Тогда команда show alert могла бы вернутьAsyncToken
и иметь свой собственный обработчик результатов. - person Sunil D.   schedule 18.04.2013