1

大家好。

我在使用来自 XML 文件的 Flex 和远程数据方面进行了一些“培训”。

这是我的 HTTP 服务

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

我有一个按钮,当它单击它时调用一个函数,该函数调用loginData.send并执行一些 IF 条件,该 IF 条件依赖于返回的数据loginData

该条件不起作用,因为它在 , 旁边被调用loginData.send,并且 .send 方法仍然没有从 XML 文件返回值。但是,如果您在第一次单击后第二次单击它,则 IF 条件有效。

所以为了处理我想做一个事件监听器,这样当loginData.send从 XML 返回数据时,它会触发 IF 条件。但我不知道该怎么做。

你能帮助我吗?

4

1 回答 1

3

HTTPService 的 send 方法返回一个 AsyncToken,您可以在其中添加一个 Responder 以及任意数据。所以在你的按钮的点击处理程序中:

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

此外,MXML 可以声明一个结果处理程序:

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

AsyncToken 的一个有趣方面是它是一个动态对象,这意味着您可以对其应用任意属性:

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 回答