ciao mattia
è possibile chiamare direttamente dei metodi di php da flash
usando il webservices amfphp.
in as3.0 le librerie sono già installate devi solo dichiare il metodo di encoding
in php devi installare uno script - molto semplice la'installazione
ti crei la tua classe in php con i suoi metodi e li chiami direttamente da flash
in giro nei forum ci sono gran lodi a questo amfphp che , dicono, gira molto bene..
ma io non sono ci sono riuscito..
ho anche mollato subito perchè secondo me i webservices non sono più l'avanguardia ma questo è un altro discorso molto opinabile..
se vuoi seguire uno standard (csa che ti consiglio molto) puoi usare dell'xml. io ho fatto così
crei degli script in php formattino gli output dell'sql in un xml specifico. poi crei un .as che parsa questi xml e si mangia le variabili..
in as non è troppo difficile se hai un minimo di dimestichezza con la programmazione..
per chamare uno script php e e memorizzare il risultato in as guardati queste librerie:
Code:
// netlib
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat ;
import flash.xml.XMLDocument;
import flash.xml.XMLNode;
import flash.net.navigateToURL;
ti incollo qualche metodo che ho scritto
ovviamente si basa tutto su codice di flep : DD
quindi ringrazia flep mi raccomando : DD
Code:
var variablesToSend:Object;
...
private function sendToPhp():void {
import flash.net.URLVariables;
import flash.net.URLLoader;
var v : URLVariables = variablesToSend.formatData();
var l,s : URLLoader;
l = new RemotingPhp ();
s = l.enstablishNet( "script.php", v );
s.addEventListener(Event.COMPLETE,completeHandler);
}
***
qui devi crearti l'oggetto generico variablesToSend
e metterci dentro i dati da mandare a php.. come se fosse script.php?variablesToSend
***
e
Code:
public function enstablishNet(argv1:String , argv2:Object):URLLoader {
/**
* Create a connceton via HTML protocol for interfacing with server-side part of
* application (in this case php POST)
*
* @param argv1 server-side script or page to ask for
* @param argv2 data object to attach at the request
* @return URLLoader object (extends EventDispatcher)
* that dispatch notification events about reciving data from server
* see materials about event-driver application for more information.
* @since ActionScript 3.0 , Flash Player 9
* @see flash.net.URLLoader , flash.net.URLRequest , flash.events.EventDispatcher
* security chapter in the Programming ActionScript 3.0 book
*/
var req:URLRequest=new URLRequest();
req.url = _host + argv1 ;
req.method=URLRequestMethod.POST;
req.data = argv2 ;
//dico a loader di formattare la stringa invio dei dati ( per intenderci come fosse bambi.php?numero=...)
var loader:URLLoader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
addNetListeners(loader);
try {
loader.load(req);
}
catch (error:Error) {
// here must throws an exception !!
trace('Unable to load richiestaed document.');
}
return loader;
}
poi avrai un metodo completeHandler in cui gestisci l'oggetto URLLoader come vuoi parsando l'xml che avrà dentro i risultati di sql
spero di esserti stato chiaro
se riguardi gli esempi di fle c'è tutto!!
ciao