Flash Remoting

Gebruik Flash Remoting en AMF voor geoptimaliseerde gegevenscommunicatie tussen de client en de server.

U kunt XML gebruiken om externe inhoud in SWF-bestanden te laden. XML is echter onbewerkte tekst die door de runtime wordt geladen en geparseerd. XML werkt het best bij toepassingen die een beperkte hoeveelheid inhoud laden. Als u een toepassing ontwikkelt die een grote hoeveelheid inhoud ontwikkelt, kunt u de Flash Remoting-technologie en Action Message Format (AMF) gebruiken.

AMF is een binaire indeling die wordt gebruikt om gegevens te delen tussen een server en de runtime. Het gebruik van AMF reduceert de omvang van de gegevens en verhoogt de snelheid van de gegevensoverdracht. Aangezien AMF een eigen indeling voor de runtime is, voorkomt u met het verzenden van AMF-gegevens naar de runtime een geheugenintensieve serialisatie en deserialisatie aan de clientzijde. De externe gateway handelt deze taken af. Als een ActionScript-gegevenstype naar een server wordt verzonden, handelt de externe gateway de serialisatie voor u af op de server. De gateway zendt u ook het overeenkomstige gegevenstype. Dit gegevenstype is een klasse die op de server is gemaakt en waarmee een set methoden wordt weergegeven die kunnen worden aangeroepen vanuit de runtime. Flash Remoting-gateways zijn onder andere ZendAMF, FluorineFX, WebORB en BlazeDS, een officiële open source Java Flash Remoting-gateway van Adobe.

De volgende afbeelding geeft het Flash Remoting-concept weer:

Het volgende voorbeeld gebruikt de NetConnection-klasse om verbinding te maken met een Flash Remoting-gateway:

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

Verbinding maken met een externe gateway is redelijk eenvoudig. Het gebruik van Flash Remoting kan echter nog eenvoudiger worden gemaakt door de RemoteObject-klasse in de Adobe ® Flex® SDK te gebruiken.

Opmerking: Externe SWF-bestanden, zoals die van het Flex-raamwerk, kunnen worden gebruikt in een Adobe® Flash® Professional-project. Het gebruik van SWC-bestanden staat u toe de RemoteObject-klasse en afhankelijkheden te gebruiken zonder dat u de rest van de Flex SDK moet gebruiken. Geavanceerde ontwikkelaars kunnen, indien nodig, zelfs rechtstreeks communiceren met een externe gateway via de onbewerkte Socket-klasse.