HTTPService事件监听器,因此当“.send”方法从XML获取数据时它会触发某些内容

时间:2009-09-23 15:05:31

标签: xml flex events flex3 httpservice

每个人都过得愉快。

我在使用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文件返回值。但是,如果您在第一次单击后第二次单击它,则IF条件可以正常工作。

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

你能帮助我吗?

1 个答案:

答案 0 :(得分:3)

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

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 ,以便在条件或您可能需要的任何内容中使用。