設計上の決定またはアドビが HTTPService オブジェクトによって起動される ResultEvent の内容を変更したことによって。
次の例を見てください。
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 では魅力的に動作します。しかし、HTTPServiceが nullであるため、Flex 3.5 または Flex 4.0の event.targetでコンパイルしようとすると、 .
event.target がHTTPOperationのインスタンスになっていることがわかりました。langrefで HTTPOperationが見つからないので、これは興味深いことです。ただし、Flash Builder のデバッガーが意味するのはmx.rpc.http.Operationだと思います。
デバッガーは、event.targetにプライベート属性 httpService があることも示しています。これは、私がevent.targetで取得すると予想したインスタンスです。しかし、非公開なので、event.target.httpServiceは機能しません。
EventListener のみを削除したい場合は、event.targetをEventDispatcherとしてキャストできます。しかし、HTTPServiceのメソッドを使用する必要があります。
では、どうすればResultEvent からHTTPServiceインスタンスを取得できますか?
どんな助けでも大歓迎です。ありがとう!
J.