Home > ACTIONSCRIPT 3.0 > [AS3] – Invio e ricezione Dati tra FLASH e PHP

[AS3] – Invio e ricezione Dati tra FLASH e PHP

L’esempio seguente mostra come inviare una variabile ( il contenuto di un TextField ) ad uno script PHP (Server-Side), e ricevere dallo script PHP un messaggio di risposta.

// .........................................................
//     NAME : FlashPhp.fla
//            ESEMPIO MINIMALISTA DI INVIO E RICEZIONE DATI
//            TRA FLASH E PHP
// .........................................................

// ... IMPORT DELLE CLASSI PER IL CARICAMENTO E LO SCAMBIO
//     DEI DATI CON LO SCRIPT PHP
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLVariables;

// ... DICHIARAZIONE DELLE VARIABILI RELATIVE AI REFERENCE
//     DEGLI OGGETTI
var phpRequest : URLRequest;
var phpLoader  : URLLoader;
var dataToPHP  : URLVariables;

// ... CREAZIONE DELL'OGGETTO URLRequest PER LA RICHIESTA
//     DI ESECUZIONE DELLO SCRIPT PHP (LATO SERVER)
phpRequest = new URLRequest();

// ... CREAZIONE DELL'OGGETTO URLLoader PER IL CARICAMENTO
//     DELLO SCRIPT PHP (LATO SERVER)
phpLoader  = new URLLoader();

// ... CREAZIONE DELL'OGGETTO URLVariables PER L'INVIO
//     DELLE VARIABILI DA FLASH A PHP
dataToPHP  = new URLVariables();

// ... IMPOSTAZIONE DEL METODO DI PASSAGGIO DELLE VARIABILI
//     (GET | POST)
phpRequest.method = URLRequestMethod.POST;

// ... ASSEGNAZIONE DEL TIPO DI FORMATO IN CUI SI DESIDERA
//     RICEVERE I DATI DALLO SCRIPT PHP :

// ... in formato VARIABLES :
//     (i dati ricevuti sono costituiti da un oggetto URLVariables
//      che contiene le variabili con codifica URL)
phpLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

// ... altri modi in cui possono essere ricevuti i dati
//     dallo script PHP :

//     - in formato testo (URLLoaderDataFormat.TEXT)
//       i dati sono costituiti da una stringa contenente il testo

//     - in formato binaro (URLLoaderDataFormat.BINARY)
//       i dati sono costituiti da un oggetto di Classe ByteArray

// ***

// ... I COMPONENTI PRESENTI SULLO STAGE (per il test) :

// ... UN TextField PER L'IMMISSIONE DI UN CAMPO DA INVIARE
//     ALLO SCRIPT PHP
nickName.text = "";

// ... UN TextField CHE CONTERRA' IL MESSAGGIO RICEVUTO
//     DALLO SCRIPT PHP
msg.text      = "";

// ... UN Button PER L'AVVIO DEL CARICAMENTO ED ESECUZIONE
//     DELLO SCRIPT PHP (sul server)
btn_Send.addEventListener(MouseEvent.CLICK, onClickSend);

// ...

// .........................................................
//     FUNCTION : onClickSend() - MouseEvent.CLICK
//                AVVIO DEL CARICAMENTO ED ESECUZIONE DELLO
//                SCRIPT PHP SUL SERVER
// .........................................................
function onClickSend(evento:MouseEvent):void
{
    // ... PREPARAZIONE DEI DATI DA INVIARE ALLO SCRIPT PHP

    // ... ASSEGNAZIONE DELLE VARIABILI DA INVIARE
    //     (come proprietà dinamiche dell'oggetto : URLVariables)
    dataToPHP.nickname = nickName.text;
    // ... etc..

    // ... AGGIUNTA DEGLI ASCOLTATORI PER LA GESTIONE DEGLI EVENTI :

    // ... AGGIUNTA DELL'ASCOLTATORE PER LA GESTIONE
    //     DELL'EVENTO : COMPLETE
    //     (la funzione sarà invocata al termine dell'esecuzione
    //      dello script PHP ed eventuali dati, inviati da questi,
    //      saranno pervenuti)
    phpLoader.addEventListener(Event.COMPLETE, onCompleteScript);

    // ... AGGIUNTA DELL'ASCOLTATORE PER LA GESTIONE
    //     DELL'EVENTO : IO_ERROR
    //     (la funzione sarà invocata in caso di errore durante
    //      il caricamento dello script PHP)
    phpLoader.addEventListener(IOErrorEvent.IO_ERROR, onErrorScript);

    // ... AGGIUNTA DELL'ASCOLTATORE PER LA GESTIONE
    //     DELL'EVENTO : OPEN
    //     (la funzione sarà invocata quando il caricamento
    //       dello script PHP e' iniziato)
    phpLoader.addEventListener(Event.OPEN, onOpenScript);

    // ... AGGIUNTA DELL'ASCOLTATORE PER LA GESTIONE
    //     DELL'EVENTO : PROGRESS
    //     (la funzione sarà invocata durante il caricamento
    //      dello script PHP)
    phpLoader.addEventListener(ProgressEvent.PROGRESS, onProgressScript);

    // ... ASSEGNAZIONE DELL'OGGETTO: URLVariables ALLA
    //     PROPRIETA' .data DELL'OGGETTO : URLRequest
    phpRequest.data = dataToPHP;

    // ... ASSEGNAZIONE DELLO SCRIPT PHP ALLA PROPRIETA' .url
    //     DELL'OGGETTO : URLRequest
    phpRequest.url  = "flashPhp.php";

    // ... AVVIO DELLA RICHIESTA DI CARICAMNETO ED ESECUZIONE
    //     DELLO SCRIPT PHP SUL SERVER
    phpLoader.load(phpRequest);

    // ...
}
// .........................................................

// .........................................................
//     FUNCTION : onCompleteScript() - Event.COMPLETE
//                EVENTO NOTOFICATO AL COMPLETAMENTO ED
//                ESECUZIONE DELLO SCRIPT PHP SUL SERVER
// .........................................................
function onCompleteScript(evento:Event):void
{
    var dataFromPHP : URLVariables;
    var msgFromPHP  : String;

    // ... LO SCRIPT PHP E' STATO CARICATO ED ESEGUITO, ED
    //     I DATI SONO STATI RICEVUTI!

    // ... CREAZIONE DI UN OGGETTO : URLVariables IN CUI
    //     ACQUISIRE I DATI RICEVUTI DALLO SCRIPT PHP
    //     (al metodo costruttore viene passato come argomento
    //      la proprietà .data contenente i dati ricevuti)
    dataFromPHP = new URLVariables(evento.target.data);

    // ... ACQUISIZIONE DELLE VARIABILI INVIATE DALLO SCRIPT PHP
    //     (il nome della proprieta' .messaggio e' quello
    //      indicato nell'echo dello script PHP)
    msgFromPHP = dataFromPHP.messaggio;
    // ... etc..

    // ... VISUALIZZAZIONE
    msg.text = String(dataFromPHP.messaggio);
    // ... etc..

    // ... RIMOZIONE DEGLI ASCOLTATORI
    phpLoader.removeEventListener(Event.COMPLETE, onCompleteScript);
    phpLoader.removeEventListener(IOErrorEvent.IO_ERROR, onErrorScript);
    phpLoader.removeEventListener(Event.OPEN, onOpenScript);
    phpLoader.removeEventListener(ProgressEvent.PROGRESS, onProgressScript);
}
// .........................................................

// .........................................................
//     FUNCTION : onErrorScript() - IOErrorEvent.IO_ERROR
//                EVENTO NOTIFICATO IN CASO DI ERRORE DI
//                CARICAMENTO DELLO SCRIPT PHP SUL SERVER
// .........................................................
function onErrorScript(evento:IOErrorEvent):void
{
    // ... SI E' VERIFICATO UN ERRORE DURANTE IL CARICAMENTO
    msg.text = '... errore caricamento Script PHP';
}
// .........................................................

// .........................................................
//     FUNCTION : onOpenScript() - Event.OPEN
//                EVENTO NOTIFICATO ALL'AVVIO DEL CARICAMENTO
//                DELLO SCRIPT PHP SUL SERVER
// .........................................................
function onOpenScript(evento:Event):void
{
    // ... AVVIO RICHIESTA CARICAMENTO ED ESECUZIONE
    //     DELLO SCRIPT PHP SUL SERVER
    msg.text = '... avvio caricamento Script PHP.';
}
// .........................................................

// .........................................................
//     FUNCTION : onProgressScript() - ProgressEvent.PROGRESS
//                EVENTO NOTIFICATO DURANTE I CARICAMENTO
//                DELLO SCRIPT PHP SUL SERVER
// .........................................................
function onProgressScript(evento:ProgressEvent):void
{
    // ... LO SCRIPT E' IN ESECUZIONE SUL SERVER
    msg.text = '... attendere, prego.';
}
// .........................................................

// ... END

… lo script PHP

<?
    // .....................................................
    //  NAME : flashPhp.php
    //         ESEMPIO DI SCAMBIO DATI TRA FLASH E PHP
    // .....................................................

    // ... acquisizione delle variabili inviate dall'SWF

    // ... il nick name
    $nickName   = $_POST['nickname'];
    // ... etc..

    // ... prepara risposta
    $msg        = '... hello ' . $nickName;

    // ... invia messaggio di ritorno all'SWF chiamante
    echo "messaggio=" . urlencode($msg);

    // ... la funzione urlencode() effettua l'encoding di una
    //     stringa, covertendo la stringa in un formato URL
    //     valido (conversione di caratteri speciali).

    // ... i caratteri '/', '%', '&', etc..., sono convertiti
    //     con il segno % seguito dalla codifica HEX del
    //     carattere.
    //     ( la funzione inversa e' : urldecode() )

    // ... end of script
?>

Annunci
Categorie:ACTIONSCRIPT 3.0
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Leave a Reply ... thank you

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...