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.