|
|
 |
 |
| Introduzione a Flash Remoting |
|
|
 |
Flash remoting permette alle applicazioni flash di chiamare delle applicazioni remote lato server passando e ricevendo parametri.
Le chiamate sono abitualmente conosciute come Remote Procedural Calls (RPCs). Con AMF lo scambio di informazioni è più veloce perchè consente di passare oggetti in formato binario.
Come prima cosa bisogna installare i .
Poi bisogna scaricare l'ultima versione di AMFPHP da
.
Una volta scaricata scomprimete i file; vi troverete davanti a 3 cartelle, quella che a noi interessa è la cartella chiamata flashservices.
Dentro questa cartella cè la cartella app contenente il file Gateway.php.
Questo file serve ad eseguire la comunicazione tra la libreria AMF e la nostra applicazione e quindi abbiamo necessità di puntare ad esso per far funzionare il nostro lavoro.
Per fare questo costruiamo una pagina gateway.php dentro la cartella flashservices, che conterrà due tipi di informazioni: il percorso al file Gateway accennato prima, e quello alla cartella services dove andremo a mettere le nostre applicazioni.
<?php
include ("../flashservices/app/Gateway.php");
$gateway = new Gateway ();
$gateway ->setBaseClassPath ("services/");
$gateway ->service();
?>
Poniamo quindi di dover simulare il lancio di un dado.
Come prima cosa creiamo un file Dado.php che salveremo dentro la cartella services.
<?php
class Dado{
function Dado(){
$this->methodTable = array(
"LancioDado" => array(
"description" => "Generazione numero casuale da 1 a 6 ",
"access" => "remote",
"arguments" => array ("")
)
);
}
function LancioDado(){
$lancio= rand(1,6);
return $lancio;
}
}
?>
Come prima cosa notiamo che il metodo costrutture deve avere lo stesso nome della classe (Dado), al cui interno creiamo un array multidimensionale che contiene il metodo da utilizzare.
Se vi sono più metodi, dovremmo creare un array multidimensionale per ogni metodo.
Il valore 'description' serve a descrivere le funzionalità del metodo.
Il valore 'access' può essere settato su 3 valori: 'remote', 'private', 'public'; teniamolo su 'remote' per far si che flash ci possa accedere.
Il valore 'arguments' è un array contenente i parametri da passare al metodo (nel nostro caso nessun parametro).
Parte Flash
Come prima cosa creiamo la connessione al servizio.
Includiamo le classi NetDebug e NetServices.
#include "NetServices.as"
#include "NetDebug.as"
La prima serve ad effettuare la connessione, mentre la seconda è usata dal Debugger per controllare lo stato della connessione. La si può controllare dal NetConnection Debugger che si trova sotto il menu Finestra/Altri Pannelli.
Poi creiamo la connessione:
NetServices.setDefaultGatewayUrl("http://localhost/flashservices/gateway.php");
conn = NetServices.createGatewayConnection();
A questo punto creiamo sullo stage un campo di testo dinamico che chiameremo _txt ed un pulsante che chiameremo bnt.
Creiamo un oggetto request che avrà il compito di ritornare il risultato dell'interrogazione.
request = new Object();
request.onResult = function(result){
show.text= result;
}
Chiamiamo il servizio indicandogli il nome del file interessato (il nostro si chiama 'Dado'):
service = conn.getService("Dado");
A questo punto, alla pressione del pulsante chiamiamo il metodo 'LancioDado' che restituirà un numero da 1 a 6 generato casualmente e lo stamperà nel campo di testo con nome d'istanza 'show'.
bnt.onPress = function(){
service.LancioDado(request);
}
|
|
|