Utilizzate Flash Remoting e AMF per ottimizzare le comunicazioni dati client-server.
Potete utilizzare il codice XML per caricare contenuto remoto nei file SWF. XML è tuttavia testo semplice che viene caricato e analizzato dal runtime. È indicato soprattutto per le applicazioni che caricano una quantità limitata di contenuto. Se sviluppate un'applicazione che carica una grande quantità di contenuto, valutate la possibilità di utilizzare la tecnologia Flash Remoting e il formato AMF (Action Message Format).
AMF è un formato binario che consente di condividere dati tra un server e il runtime. L'uso di AMF riduce le dimensioni dei dati e migliora la velocità di trasmissione. Poiché AMF è un formato nativo del runtime, inviando dati AMF al runtime si evita il consumo di memoria dovuto alla serializzazione e deserializzazione sul lato client. Il gateway di remoting si occupa di queste operazioni. Quando un tipo di dati ActionScript viene inviato a un server, il gateway di remoting gestisce autonomamente la serializzazione sul lato server e provvede a inviare il tipo di dati corrispondente. Questo tipo di dati è una classe creata sul server, che espone una serie di metodi che possono essere chiamati dal runtime. I gateway di Flash Remoting disponibili sono ZendAMF, FluorineFX, WebORB e BlazeDS, un gateway Flash Remoting Java ufficiale e open-source creato da Adobe.
La figura seguente illustra il concetto di Flash Remoting:
Nell'esempio seguente viene usata la classe NetConnection per connettersi a un 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 ?");
La connessione a un gateway di Flash Remoting è estremamente lineare. Tuttavia, l'uso di Flash Remoting può essere ulteriormente semplificato utilizzando la classe RemoteObject inclusa in Adobe® Flex® SDK.
Nota:
i file SWC esterni, come quelli del framework Flex, possono essere utilizzati in un progetto di Adobe® Flash® Professional. L'uso dei file SWC vi permette di utilizzare la classe RemoteObject e le relative dipendenze senza utilizzare il resto dell'SDK Flex. Gli sviluppatori più esperti possono anche comunicare direttamente con un gateway di remoting tramite la classe Socket, se necessario.