簡體   English   中英

為什么使用addEventListener添加的事件無法正常工作?

[英]Why isn't my event added using addEventListener working?

我正在嘗試RestClientLib ,但未觸發我添加的事件監聽器 我不明白為什么。 有人有什么想法嗎?

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));
}

實際接收到數據,但不傳播事件。

我也嘗試將氣泡設置為true,但無濟於事。

看起來該事件是在event.token上調度的。 該令牌看起來像是由sendrequest方法返回的。 因此,您可以像這樣添加偵聽器:

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

希望能奏效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM