0

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であることがわかります。

私はインターネットでいくつかの「解決策」を見ましたが、すべてデータグリッドを使用して結果を表示しましたが、それは私が望んでいることではありません。単純な配列やオブジェクトのようにアクセスしたい。

これどうやってするの?

4

1 に答える 1