2012-09-11 34 views
0

我正在嘗試RestClientLib和我添加的eventlistener未被解僱。 我看不出爲什麼。任何人有任何想法?爲什麼我的事件不是使用addEventListener工作而添加的?

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

你能發佈一個鏈接到這個RestClient庫嗎? onResult方法中的「event.token」是什麼?這就是接收事件,而不是RestClient。 – normmcgarry

+0

@normmcgarry鏈接已經提供 –

+0

對不起,完全沒有意識到這是一個超鏈接。見下面的迴應! – normmcgarry

回答

1

看起來事件是在event.token上調度的。該令牌看起來像是由sendrequest方法返回的。所以你會添加這樣的聽衆:

var token:AsyncToken = restClient.sendrequest(); 
token.addEventListener(RestEvent.RESULT, onResult); 

希望工程。

+0

謝謝,先生! (RestClientLib作者的例子誤導了......) –

相關問題