Flash Remoting

Verwenden Sie Flash Remoting und AMF für eine optimierte Client-/Server-Datenkommunikation.

Sie können XML zum Laden von Remote-Inhalt in SWF-Dateien verwenden. Bei XML handelt es sich jedoch um reinen Text, der von der Laufzeitumgebung geladen und analysiert wird. XML eignet sich am besten für Anwendungen, die nur eine eingeschränkte Inhaltsmenge laden. Bei der Entwicklung von Anwendungen, die große Mengen an Inhalt laden, sollten Sie die Flash Remoting-Technologie und das Action Message Format (AMF) in Betracht ziehen.

AMF ist ein Binärformat zum Austauschen von Daten zwischen einem Server und der Laufzeitumgebung. AMF reduziert die Datengröße und beschleunigt die Übertragung. Da AMF ein natives Format für die Laufzeitumgebung ist, wird beim Senden von AMF-Daten an die Laufzeitumgebung die arbeitsspeicherintensive Serialisierung und Entserialisierung auf der Clientseite vermieden. Diese Aufgaben werden vom Remoting-Gateway gehandhabt. Beim Senden eines ActionScript-Datentyps an einen Server übernimmt der Remoting-Gateway die Serialisierung am Server. Das Gateway sendet Ihnen auch den entsprechenden Datentyp. Dieser Datentyp ist eine Klasse, die auf dem Server erstellt wird und Methoden bereitstellt, die von der Laufzeitumgebung aufgerufen werden können. Zu den Flash Remoting-Gateways zählen ZendAMF, FluorineFX, WebORB und BlazeDS, ein offizieller Java Flash Remoting-Gateway auf Open-Source-Basis von Adobe.

Die folgende Abbildung veranschaulicht das Konzept von Flash Remoting:

Im folgenden Beispiel wird die NetConnection-Klasse verwendet, um eine Verbindung mit dem Flash Remoting-Gateway herzustellen:

// 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 ?");

Eine Verbindung mit einem Remoting-Gateway lässt sich sehr einfach herstellen. Die Verwendung von Flash Remoting kann jedoch mit der RemoteObject-Klasse im Adobe® Flex® SDK noch weiter vereinfacht werden.

Hinweis: Externe SWC-Dateien, beispielsweise aus dem Flex Framework, können innerhalb eines Projekts in Adobe® Flash® Professional verwendet werden. Bei Verwendung von SWC-Dateien können Sie die RemoteObject-Klasse und ihre abhängigen Elemente verwenden, ohne den Rest des Flex SDK nutzen zu müssen. Erfahrene Entwickler können sogar über die reine Socket-Klasse direkt mit einem Remoting-Gateway kommunizieren, sofern erforderlich.