Utilice Flash Remoting y AMF para la comunicación optimizada de datos servidor-cliente.
XML se puede emplear para cargar contenido remoto en archivos SWF. No obstante, XML es texto sin formato que el motor de ejecución carga y analiza. XML funciona mejor para las aplicaciones que cargan una cantidad limitada de contenido. Si está desarrollando una aplicación que carga una gran cantidad de contenido, considere el uso de la tecnología Flash Remoting y del formato de mensaje de acción (Action Message Format, AMF).
AMF es un formato binario utilizado para compartir datos entre un servidor y el motor de ejecución. El uso de AMF reduce el tamaño de los datos y mejora la velocidad de transmisión. Debido a que AMF es un formato nativo para el motor de ejecución, el envío de datos AMF al motor de ejecución evita la deserialización y la serialización de uso intensivo de memoria en el lado del cliente. La puerta de enlace remota administra estas tareas. Al enviar un tipo de datos de ActionScript a un servidor, la puerta de enlace remota administra la serialización en el lado del cliente. La puerta de enlace también envía el tipo de datos correspondiente. Este tipo de datos es una clase creada en el servidor que expone un conjunto de métodos que se pueden llamar desde el motor de ejecución. Entre las puertas de enlace de Flash Remoting se incluyen ZendAMF, FluorineFX, WebORB y BlazeDS, una puerta de enlace Flash Remoting de Java de código fuente abierto oficial de Adobe.
La siguiente figura ilustra el concepto de Flash Remoting:
En el siguiente ejemplo se utiliza la clase NetConnection para conectarse a una puerta de enlace de 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 ?");
La conexión con una puerta de enlace remota es un proceso sencillo. No obstante, el uso de Flash Remoting se puede facilitar aún más utilizando la clase RemoteObject incluida en el SDK de Adobe® Flex®.
Nota:
los archivos SWC externos, como los abiertos desde la arquitectura de Flex, se pueden utilizar dentro de un proyecto de Adobe® Flash® Professional. El uso de los archivos SWC permite la utilización de la clase RemoteObject y sus dependencias sin emplear el resto del SDK de Flex. Los desarrolladores avanzados pueden incluso comunicarse con una puerta de enlace remota directamente mediante la clase Socket sin procesar, si es necesario.