Flash Remoting

Utilize o Flash Remoting e o AMF para comunicação de dados cliente servidor otimizada.

Você pode usar XML para carregar conteúdo remoto em arquivos SWF. Entretanto, XML é texto simples que o tempo de execução carrega e analisa. O XML funciona melhor para aplicativos que carregam uma quantidade limitada de conteúdo. Se você estiver desenvolvendo um aplicativo que carrega uma grande quantidade de conteúdo, considere usar a tecnologia Flash Remoting e o formato AMF (Action Message Format).

AMF é um formato binário usado para compartilhar dados entre um servidor e o tempo de execução. O uso de AMF reduz o tamanho dos dados e melhora a velocidade de transmissão. Como o AMF é um formato nativo para o tempo de execução, enviar dados AMF para o tempo de execução evita serialização e deserialização com alto consumo de memória no lado do cliente. O gateway remoto lida com essas tarefas. Ao enviar um tipo de dado ActionScript para um servidor, o gateway remoto lida com a serialização no servidor. O gateway também envia o tipo de dado correspondente para você. Esse tipo de dado é uma classe criada no servidor que expõe um conjunto de métodos que podem ser chamados a partir do tempo de execução. Os gateways do Flash Remoting incluem ZendAMF, FluorineFX, WebORB e BlazeDS, um gateway oficial Java Flash Remoting de código aberto da Adobe.

A figura a seguir ilustra o conceito de Flash Remoting:

O exemplo a seguir usa a classe NetConnection para conectar-se a um gateway Flash Remoting:

// Create the NetConnection object 
var connection:NetConnection = new NetConnection (); 
  
// Connect to a Flash Remoting gateway 
connection.connect ("http://www.yourserver.com/remotingservice/gateway.php"); 
  
// Asynchronous handlers for incoming data and errors 
function success ( incomingData:* ):void 
{ 
    trace( incomingData ); 
} 
  
function error ( error:* ):void 
{ 
    trace( "Error occured" ); 
} 
  
// Create an object that handles the mapping to success and error handlers 
var serverResult:Responder = new Responder (success, error); 
  
// Call the remote method 
connection.call ("org.yourserver.HelloWorld.sayHello", serverResult, "Hello there ?");

A conexão a um gateway remoto é simples. No entanto, o uso do Flash Remoting pode ser facilitado ainda mais pelo uso da classe RemoteObject incluída no SDK do Adobe® Flex®.

Nota: Arquivos SWC externos, como os da estrutura Flex, podem ser usados dentro de um projeto do Adobe® Flash® Professional. O uso de arquivos SWC permite usar a classe RemoteObject e suas dependências sem usar o resto do SDK do Flex. Desenvolvedores avançados podem até mesmo se comunicar com um gateway remoto diretamente, por meio da classe Socket, se necessário.