每个人都过得愉快。
我在使用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条件。但我不知道该怎么做。
你能帮助我吗?
答案 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 ,以便在条件或您可能需要的任何内容中使用。