1

みなさん、こんにちは。

XMLファイルからのFlexおよびリモートデータの操作で少し「トレーニング」を行っています。

これは私のHTTPServiceです

<mx:HTTPService id="loginData" url="com-handler/basic.xml" showBusyCursor="true">
</mx:HTTPService>

私はボタンを持っていて、それがクリックされると、関数を呼び出します。この関数loginData.sendは、小さなIF条件を呼び出して実行します。そのIF条件は、によって返されるデータに依存しますloginData

loginData.send条件は、。sendメソッドのすぐ隣で呼び出されたため、XMLファイルから値を返さなかったため機能しません。ただし、最初のクリックの1秒後にもう一度クリックすると、IF条件が機能します。

loginData.sendだから私はそれに対処するために、XMLからデータを返すときにIF条件を起動するようにeventListenerを実行したかったのです。しかし、私はそれを行う方法がわかりません。

手伝って頂けますか?

4

1 に答える 1

3

HTTPServiceのsendメソッドは、レスポンダーと任意のデータを追加できるAsyncTokenを返します。したがって、ボタンのクリックハンドラーでは次のようになります。

var responder:IResponder = new Responder(myResultFunction, myFaultFunction)
var token:AsyncToken = myService.send();
token.addResponder(responder);

さらに、MXMLは結果ハンドラーを宣言できます。

<mx:HTTPService id="myService" result="myResultHandler(event)"/>

AsyncTokenの興味深い側面の1つは、動的オブジェクトであるということです。つまり、任意のプロパティを適用できます。

var responder:IResponder = new Responder(myResultFunction, myFaultFunction)
var token:AsyncToken = myService.send();
token.addResponder(responder);
token.myArbitraryProperty = "Whatever";
token.anotherProperty = someObject;

これで、 myResultFunctionでevent.token.myArbitraryPropertyにアクセスして、条件文や必要に応じて使用できるようになりました。

于 2009-09-23T15:17:09.407 に答える