HTTPServiceオブジェクトの結果を取得するために私を狂わせます。サーバーへの呼び出しが完了すると、結果イベントがトリガーされます。すべてが正常に機能しており、サーバーはエラーなしでXMLデータまたはJSONデータを提供できます。しかし、イベントオブジェクト「ResultEvent」をどうするかは、私にはわかりません。
コードをいくつか紹介します。
<fx:Declarations>
<s:HTTPService id="hsConfig"
url="{IR_BASE_URL}/getconfig.json"
result="onGetConfig(event)"
fault="onGetConfigError(event)"
method="POST"
showBusyCursor="false"
resultFormat="array"
makeObjectsBindable="true"
>
<s:request xmlns="">
<post1>Hello</post1>
<post2>World</post2>
</s:request>
</s:HTTPService>
</fx:Declarations>
そして、いくつかのアクションスクリプト:
protected function onGetConfig(e:ResultEvent):void
{
//var adata:XMLList = XML.(e.result);
var data:Object = e.result,
oo : HTTPService = (e.currentTarget as HTTPService);
trace( oo.lastResult );
trace( e.result.lastResult );
trace( data.cfg );
trace( e.result.length );
if( e.result.length )
{
trace( e.result[0].length );
}
}
サーバーから返されたxml:
<?xml version="1.0" encoding="UTF-8"?>
<cfg>
<param1>Hello</param1>
<param2>World</param2>
</cfg>
たとえばtrace( e.result.cfg )
、名前が存在しないというエラーが発生します。いくつかのことを試し、デバッガーを使用して、プロパティe.resultの内容を確認しました。結果は1つの要素[0]を持つArrayCollectionであり、要素はObjectProxyであることがわかります。
私はインターネットでいくつかの「解決策」を見ましたが、すべてデータグリッドを使用して結果を表示しましたが、それは私が望んでいることではありません。単純な配列やオブジェクトのようにアクセスしたい。
これどうやってするの?