Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Обработка ответа HTTPService (http://www.flasher.ru/forum/showthread.php?t=130668)

sqrt 01.10.2009 13:46

Обработка ответа HTTPService
 
Здравствуйте вот привожу код
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.utils.StringUtil;
import json.*;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.http.mxml.HTTPService;
public function sends():void{
var tr:HTTPService = new HTTPService();
 
var q:String = resl.text;
tr.url = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0';
tr.request.q = q;
tr.request.langpair = 'en|ru';
tr.addEventListener(ResultEvent.RESULT, onServerResponse);
tr.addEventListener(FaultEvent.FAULT,handlerFault);
tr.send();
 
private function handlerFault(event:FaultEvent):void {
        Alert.show("Нет ответа");
}
private function onServerResponse(event:ResultEvent):void {
 
 
          var jsn:Object = JParser.decode(event as String);
          Alert.show(jsn.responseData.translatedText);
          if(jsn == null)
                                {
                                        var errObj:Object = JParser.getLastError();
                                        Alert.show(errObj.errorStr);                       
                                }
 
  }
 
]]>
</mx:Script>
<mx:TextArea x="151" y="29" width="521" height="68" id="resl"/>
        <mx:TextArea x="151" y="132" width="521" height="81" id="res"  />       
        <mx:Button x="351" y="250" label="Button"  click="sends()"/>
</mx:Application>

При тестировании запрос отправляется и ответ приходит в нормально виде, проверял через Firebug
а вот Alert.show(jsn.responseData.translatedText); так и не показывается.

Подскажите что я делаю не так.

Alex_41 01.10.2009 15:17

Код AS3:

var jsn:Object = JParser.decode(event.result as String);


sqrt 01.10.2009 15:20

И как быть?
Просто у googla вот такой пример


Код AS3:

private function onServerResponse(event:ResultEvent):void {
  try {
    var json:Object = JSON.decode(event.result as String);
    // now have some fun with the results...
  } catch(ignored:Error) {
  }
}


Alex_41 01.10.2009 15:40

Просто добавте в указанной мной строчке обращение к свойству result у event`a.

sqrt 01.10.2009 15:51

извините за мой тупизм можете показать как это сделать?

Alex_41 01.10.2009 16:14

Найди 10 отличий своем коде:
Код AS3:

var jsn:Object = JParser.decode(event as String);

и в моем:
Код AS3:

var jsn:Object = JParser.decode(event.result as String);

и сразу все поймешь :)

sqrt 01.10.2009 16:34

Спасибо.
Разобрался


Часовой пояс GMT +4, время: 11:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.