Flash CS3: comunicazione con un Web Server
Venerdì 14 Dicembre, 2007ActionScript 3.0 introduce tutta una serie di formidabili strumenti di comunicazione, alcuni totalmente nuovi, altri rivisitati e migliorati rispetto alla precedente versione di ActionScript. Cominciamo a vedere come cambia il modo di interagire con un Web Server nel caso di una semplice comunicazione tra Flash e una pagina PHP con risposta in XML. Prima di tutto l'oggetto XML non esiste più! In ActionScript 3.0 sono stati introdotte nuove classi, alcune delle quali dedicate alla "retrocompatibilità".
Nota: la classe XML (insieme alle classi correlate) di ActionScript 2.0 è stata rinominata XMLDocument e spostata nel pacchetto flash.xml. È inclusa in ActionScript 3.0 al fine di assicurare la compatibilità con le versioni precedenti.
In ActionScript 2.0 la comunicazione con un Web Server veniva spesso risolta sfruttando l'accoppiata degli oggetti LoadVars e XML, usando il metodo sendAndLoad() dell'oggetto LoadVars (vedi: Flash: LoadVars e XML per inviare dati in POST). Ora le cose cambiano, ma basta solo abituarsi ai nuovi nomi ed oggetti. Come indicato nel manuale, infatti:
La classe XMLDocument rappresenta l'oggetto XML precedente che era presente in ActionScript 2.0. Il nome è stato cambiato in XMLDocument in ActionScript 3.0 per evitare conflitti di nome con la nuova classe XML di ActionScript 3.0. In ActionScript 3.0, si consiglia di utilizzare la nuova classe XML e le classi correlate, che supportano E4X (ECMAScript for XML).
La classe XMLDocument, così come XMLNode e XMLNodeType, è presente per garantire la compatibilità retroattiva. La funzionalità di caricamento dei documenti XML è ora fornita dalla classe URLLoader.
ActionScript 3.0 migliora le cose, anche se a prima vista le classi interessate sono più numerose rispetto a prima. Nel nostro caso in particolare gli oggetti che andremo ad usare sono: URLVariables, URLRequest, URLLoader e XML.
Ecco quindi un esempio di invio e ricezione:
-
var variables:URLVariables = new URLVariables();
-
variables.miavariabile = "Ciao";
-
var request:URLRequest = new URLRequest();
-
request.url = "http://www.miodominio.com/miapagina.php";
-
request.method = URLRequestMethod.POST;
-
request.data = variables;
-
var loader:URLLoader = new URLLoader();
-
loader.dataFormat = URLLoaderDataFormat.TEXT;
-
loader.addEventListener(Event.COMPLETE, completeHandler);
-
try {
-
loader.load(request);
-
} catch (error:Error) {
-
trace("Errore nel caricamento dell' URL");
-
}
-
-
function completeHandler(event:Event):void {
-
var x_xml:XML = XML(event.target.data);
-
trace(x_xml);
-
}
La parte server (miapagina.php), ovviamente, non cambia. Rispetto all'esempio mostrato in Flash: LoadVars e XML per inviare dati in POST notiamo che l'oggetto LoadVars era usato in ActionScript 2.0 sia come veicolo delle variabili POST sia come oggetto di invio, tramite il suo metodo sendAndLoad(). In ActionScript 3.0, queste due funzioni, vengono svolte da due oggetti separati: URLVariables come veicolo delle variabili POST (o GET) e URLLoader per l'invio. La separazione, come è ovvio, migliora la precedente situazione in quanto ci fornisce due oggetti "dedicati" che, tra l'altro, svolgono numerosi ed importanti (e innovativi) compiti aggiuntivi - come avremo modo di vedere in futuro.
Su questo argomento (estremamente vasto in ActionScript 3.0) torneremo più avanti analizzando anche le grandi novità presenti in altri oggetti destinati alla comunicazione e connessione con i Web Server.


















upnews.it ha detto:
undolog » Blog Archive » Flash CS3: comunicazione con un Web Server…
ActionScript 3.0 introduce tutta una serie di formidabili strumenti di comunicazione, alcuni totalmente nuovi, altri rivisitati e migliorati rispetto alla precedente versione di ActionScript. Cominciamo a vedere come cambia il modo di interagire con un…