我正在尝试RestClientLib并且我没有触发添加的eventlistener。 我不明白为什么。有人有什么想法吗?
var restClient = new RestClient();
protected function btnInfo2_clickHandler(event:MouseEvent):void
{
restClient.host = "somehost";
restClient.port = "443";
restClient.secure = true;
restClient.setupRequest(RestClient.METHOD_GET, "somemethod");
restClient.addparam("format","json");
restClient.addEventListener(RestEvent.RESULT, onResult);
restClient.sendrequest();
}
protected function onResult(event:RestEvent):void
{
trace("onResult");
}
如果我在RestClient的源代码中放置一个断点:
private function onResult(event:ResultEvent,token:Object=null):void
{
trace("Reached onResult handler");
var rawData:String = String(event.result);
event.token.dispatchEvent(new RestEvent(RestEvent.RESULT, RestClient.SUCCESS, rawData,event.statusCode,null,event.token, true));
}
实际接收数据,但不传播事件。
我也试过设置气泡为真,但没有用。
答案 0 :(得分:1)
看起来事件是在event.token上调度的。此令牌看起来像是sendrequest方法返回的。所以你要添加这样的监听器:
var token:AsyncToken = restClient.sendrequest();
token.addEventListener(RestEvent.RESULT, onResult);
希望有效。