Como este blog está há muito tempo sem atualizações, resolvi voltar fazendo um post sobre
um assunto bem legal, onde utilizaremos o serviço de tradução do Google para traduzir um texto
em inglês para português. Para isso faremos uso da classe HTTPService.

Utilizamos a classe HTTPService para representar um objeto HTTPService no ActionScript.
Quando você chamar o método send () do objeto HTTPService, ele faz uma solicitação HTTP para a
URL especificada e uma resposta HTTP é retornada. Opcionalmente, você pode passar parâmetros
para a URL especificada.

Abaixo o código mxml inicial:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
	backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#F4F4F4, #333333]">
	
	<mx:Script source="script.as" />
	
	<mx:VBox horizontalCenter="0" verticalCenter="0" horizontalAlign="center" verticalAlign="middle">	
		
		<mx:Image source="logo.png" />
		
		<mx:TextArea width="500" height="100" id="ta_original" fontSize="14"/>
		
		<mx:TextArea width="500" height="100" id="ta_traducao" editable="false" fontSize="14"/>
		
		<mx:Button label="Traduzir" />
		
	</mx:VBox>
	
	<mx:HTTPService id="servicoGoogleTradutor" />
		
</mx:Application>

Crie o arquivo ActionScript para as funções.

A função abaixo fará a requisição ao serviço.

public function servicoGoogleTradutorRequest():void {	
	
	/* Url do serviço de tradução do google	*/
	var googleTranslateUrl:String = "http://ajax.googleapis.com/ajax/services/language/translate";
	
	/* Aqui atribuimos ao HTTPService a url que ele fará a requisição */
	servicoGoogleTradutor.url = googleTranslateUrl;
	
	/* Configuração dos parâmetros do serviço */
	
	/* Versão do serviço */
	servicoGoogleTradutor.request.v 		= "1.0";
	
	/* Passamos o texto da TextArea que contem o texto que será traduzido */
	servicoGoogleTradutor.request.q 		= ta_original.text;
	
	/* Códigos da linguagens texto em Inglês (en) para POrtuguês (pt) */
	servicoGoogleTradutor.request.langpair = "en|pt";
	
	/* Chamar o serviço */
	servicoGoogleTradutor.send();
}

e na propriedade click do botão vinculamos a função acima.

<mx:Button label="Traduzir" click="servicoGoogleTradutorRequest()"/>

Em seguida criamos a função que irá receber e tratar o retorno,
que será um objeto JSON parecido com código abaixo:
{“responseData”: {“translatedText”:”texto traduzido”}, “responseDetails”: null, “responseStatus”: 200}
para exibir apenas o texto podemos utilizar a classe JSON da biblioteca as3corelib que pode ser baixada aqui.

import mx.rpc.events.ResultEvent;
import com.adobe.serialization.json.JSON;

public function servicoGoogleTradutorResult(event:ResultEvent):void {
	var result:String = event.result.toString(); 
	if( JSON.decode( result ).responseData.translatedText != null ){
		ta_traducao.htmlText = JSON.decode( result ).responseData.translatedText;
	} else {
		Alert.show( "Não foi possível realizar a tradução!");
	}
} 

Para eventuais erros na requisição do serviço, criamos mais uma função para dar um “Alert” da mensagem.

import mx.rpc.events.FaultEvent;
import mx.controls.Alert;

public function servicoGoogleTradutorFault(event:FaultEvent):void {
	Alert.show( "ERROR:\n" + event.fault.faultString ); 
}

E para finalizar vinculamos as funções ao componenete HTTPService.

<mx:HTTPService id="servicoGoogleTradutor"		
	fault="servicoGoogleTradutorFault(event)"
	result="servicoGoogleTradutorResult(event)" />

Finish.

Se der tudo certo pode aparecer algo como isso:

Referência de classe para a API de tradução

Mais sobre HTTPService no Adobe Labs