特定の順序でリクエストを送信したからといって、その順序で応答が返されるわけではありません。HTTPService 呼び出しは非同期です。たとえば、次の 3 つの要求が同時に送信されたとします。
リクエスト 1 (サーバーでの処理に 4 秒かかります)
リクエスト 2 (処理に 0.5 秒かかります)
リクエスト 3 (処理に 2 秒かかります)
ネットワーク速度が一定であると仮定すると (そして他の多くの環境問題が一定である場合)、最初に要求 2 に対する応答が返され、次に要求 3、次に要求 1 が返されます。
それらをシリアルで呼び出す必要がある場合は、次のようにする必要があります。
protected function doWork():void {
request1.send();
}
protected function onRequest1Complete(e:ResultEvent):void {
request2.send();
}
protected function onRequest2Complete(e:ResultEvent):void {
request3.send();
}
protected function onRequest3Complete(e:ResultEvent):void {
// you are done at this point
}
...
<mx:HTTPService id="request1" url="http://example.com/service1" result="onRequest1Complete(event)" />
<mx:HTTPService id="request2" url="http://example.com/service2" result="onRequest2Complete(event)" />
<mx:HTTPService id="request3" url="http://example.com/service3" result="onRequest3Complete(event)" />
それが役立つことを願っています。