из-за решения по дизайну или чего-то еще Adobe изменила содержимое ResultEvent, запущенного объектом HTTPService.
Взгляните на следующий пример:
var httpService:HTTPService = myHTTPServices.getResults();
httpService.addEventListener(ResultEvent.RESULT,resultHandler);
httpService.send();
/**
* Handels the login process
*/
function resultHandler(event:ResultEvent):void
{
// get http service
var httpService = (event.target as HTTPService);
// do something
}
Работает как шарм с Flex 3.2. Но когда я пытаюсь скомпилировать его с помощью Flex 3.5 или Flex 4.0 event.target, HTTPService имеет значение null.
Я понял, что event.target теперь является экземпляром HTTPOperation . Это интересно, потому что я не могу найти HTTPOperation в langref. Однако я думаю, что отладчик Flash Builder означает mx.rpc.http.Operation .
Отладчик также показывает, что event.target имеет закрытый атрибут httpService , который я ожидаю получить с event.target . Но это личное, так что event.target.httpService не работает.
Если я хочу удалить только EventListener, я могу привести event.target как EventDispatcher . Но мне нужно использовать методы из HTTPService .
Итак: Как я могу получить экземпляр HTTPService из ResultEvent?
Любая помощь будет принята с благодарностью. Спасибо!
J.