Hosting & Domini

 
HOME DOMINI HOSTING SERVER SUPPORTO

Integrazione di Flash nelle applicazioni Web > Invio di variabili a e caricamento di variabili da un file remoto > Uso dell'oggetto XML

Uso dell'oggetto XML


È possibile usare i metodi dell'oggetto XML ActionScript (ad esempio appendChild, removeNode e insertBefore) per strutturare i dati XML in Flash da inviare a un server e per manipolare e interpretare i dati XML scaricati.

È possibile usare i metodi dell'oggetto XML seguenti per inviare a e caricare dati XML da un server mediante il metodo HTTP POST:

load scarica i dati XML da un URL e li inserisce in un oggetto XML ActionScript.
send passa un oggetto XML a un URL. Le informazioni restituite vengono inviate a un'altra finestra del browser.
sendAndLoad invia un oggetto XML a un URL. Le informazioni restituite vengono inserite in un oggetto XML ActionScript.

Ad esempio, è possibile creare un sistema di mediazione per la negoziazione di titoli che memorizza tutte le informazioni (nomi degli utenti, password, ID delle sessioni, portafoglio titoli e informazioni sulle transazioni) in un database.

Lo script lato server che passa le informazioni tra Flash e il database legge e scrive i dati in formato XML. È possibile usare ActionScript per convertire le informazioni raccolte nel filmato Flash (ad esempio un nome utente e una password) in un oggetto XML e inviare quindi i dati allo script lato server come documento XML. È inoltre possibile usare ActionScript per caricare il documento XML restituito dal server in un oggetto XML da usare nel filmato.

Il flusso e la conversione dei dati tra un filmato Flash Player, un documento di scripting lato server e un database.
 

La convalida della password per il sistema di mediazione richiede due script: una funzione definita nel fotogramma 1 e uno script che crea e invia gli oggetti XML associati al pulsante INVIA nel modulo.

Quando gli utenti immettono le informazioni nei campi di testo del filmato Flash a cui sono associate le variabili username e password, le variabili devono essere convertite in XML prima che vengano passate al server. La prima sezione dello script carica le variabili in un nuovo oggetto XML di nome loginXML. Quando un utente preme il pulsante INVIA, l'oggetto loginXML viene convertito in una stringa XML e inviato al server.

Lo script seguente è associato al pulsante INVIA. Per capire il funzionamento dello script, leggere le righe di commento di ogni script contrassegnate dai caratteri //:

on (release) {
	// A. Crea un documento XML con un elemento LOGIN
	loginXML = new XML();
	loginElement = loginXML.createElement("LOGIN");
	loginElement.attributes.username = username;
	loginElement.attributes.password = password;
	loginXML.appendChild(loginElement);

	// B. Crea un oggetto XML per contenere la risposta del server
	loginReplyXML = new XML();
	loginReplyXML.onLoad = onLoginReply;

	// C. Invia l'elemento LOGIN al server e
	//    inserisce la risposta in loginReplyXML
	loginXML.sendAndLoad("https://www.imexstocks.com/main.cgi",
							loginReplyXML);
}

La prima sezione dello script genera la stringa XML seguente quando l'utente preme il pulsante INVIA:

<LOGIN USERNAME="JeanSmith" PASSWORD="VerySecret" />

Il server riceve la stringa XML, genera una risposta XML e la rinvia al filmato Flash. Se la password viene accettata, il server risponde con il seguente messaggio:

<LOGINREPLY STATUS="OK" SESSION="rnr6f7vkj2oe14m7jkkycilb" />

Questa stringa XML include un attributo SESSION che contiene un ID della sessione univoco, generato a caso, che verrà usato in tutte le comunicazioni tra il client e il server per il resto della sessione. Se la password viene rifiutata, il server risponde con il seguente messaggio:

<LOGINREPLY STATUS="FAILED" />

Il nodo XML LOGINREPLY deve essere caricato in un oggetto XML vuoto nel filmato Flash. La seguente istruzione crea l'oggetto XML loginreplyXML per ricevere il nodo XML:

// B. Crea un oggetto XML per contenere la risposta del server
loginReplyXML = new XML();
loginReplyXML.onLoad = onLoginReply;

La seconda istruzione assegna la funzione onLoginReply al gestore loginReplyXML.onLoad.

L'elemento XML LOGINREPLY arriva in modo asincrono, come i dati da un'azione loadVariables, e viene caricato nell'oggetto loginReplyXML. Quando arrivano i dati, viene chiamato il metodo onLoad dell'oggetto loginReplyXML. È necessario definire la funzione onLoginReply e assegnarla al gestore loginReplyXML.onLoad in modo che quest'ultimo possa elaborare l'elemento LOGINREPLY. La funzione onLoginReply è assegnata al fotogramma che contiene il pulsante Invio.

La funzione onLoginReply è definita nel primo fotogramma del filmato.
 

La funzione onLoginReply è definita nel primo fotogramma del filmato. Per capire il funzionamento dello script, leggere le righe di commento di ogni script contrassegnate dai caratteri //:

function onLoginReply() {
	// Ottiene il primo elemento XML
	var e = this.firstChild;
	// Se il primo elemento XML è un elemento LOGINREPLY il cui
	// stato è OK, va alla schermata di visualizzazione del portafoglio.  In caso contrario
	// va alla schermata di login non riuscito e consente all'utente di riprovare.
	if (e.nodeName == "LOGINREPLY" && e.attributes.status == "OK") {
// Salva l'ID della sessione per future comunicazioni con il server
	sessionID = e.attributes.session;
// Va alla schermata di visualizzazione del portafoglio
		gotoAndStop("portfolioView");
	} else {
		// Login non riuscito  Va alla schermata di login non riuscito.
		gotoAndStop("loginFailed");
	}
}

La prima riga di questa funzione, var e = this.firstChild, usa la parola chiave this per fare riferimento all'oggetto XML loginReplyXML che è stato appena caricato tramite XML dal server. È possibile usare this perché onLoginReply è stato chiamato come loginReplyXML.onLoad. Quindi anche se onLoginReply sembra una funzione semplice, in realtà si comporta come un metodo di loginReplyXML.

Per inviare il nome utente e la password come XML al server e per caricare una risposta XML nel filmato Flash, è possibile usare il metodo sendAndLoad come nell'esempio seguente:

// C. Invia l'elemento LOGIN al server e
//    inserisce la risposta in loginReplyXML
	loginXML.sendAndLoad("https://www.imexstocks.com/main.cgi", loginReplyXML);

Per ulteriori informazioni sui metodi XML, vedere le voci corrispondenti nel Dizionario di ActionScript.

Nota: questo script è solo un esempio e viene fornita nessuna garanzia sul livello di sicurezza fornito. Se si desidera implementare un sistema sicuro protetto mediante password, accertarsi di avere una conoscenza approfondita della sicurezza di rete.



Home | Mappa del sito | Condizioni di utilizzo | Privacy
 
Copyright © Hostek Srl. P.Iva 05434210489