0

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に設定しようとしましたが、役に立ちません。

4

1 に答える 1

1

イベントは event.token でディスパッチされているようです。このトークンは、sendrequest メソッドによって返されるようです。したがって、次のようにリスナーを追加します。

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

うまくいくことを願っています。

于 2012-09-11T20:43:24.277 に答える