Flash e PHP

Di: blasto | 26/09/2020 18:53:16
Ciao ragazzi,
mi ritrovo per la prima volta a dover far comunicare queste due tecnologie Flash e Php.
Logicamente flash deve caricare sia immagini che testo conosco il php (a livello base) e mysql ma non so proprio da dove cominciare...
Qualcuno può darmi consigli o sa dove posso trovare dei file di esempio che posso studiare??
Dovrei realizzare una pagina di news che carica le news dal db e mi faccia anche la paginazione ed infine devo realizzare una photogallery con thumb comprese.
Qualcuno può darmi una mano??
Grazie
Saluti
Blasto

Risposte



Ciao Blasto,
se conosci PHP e mySql non sarà difficile realizzare una photogallery e un news flicker con Flash.
Flash può mandare e ricevere variabili in diversi formati, inoltre può caricare immagini a richiesta.
Per iniziare a lavorare ti scrivo qualcosa a proposito della classe LoadVars, della classe XML e del metodo loadMovie: sono tre cose di ActionScript che userai spesso per realizzare filmati che interagiscano con il server.
Sono convinto che quello che scriverò non ti basterà, ma avere un punto da cui partire è già comodo, esistono diverse guide su Flash e potrai approfondire gli argomenti che ti servono di volta in volta, o chiedere qui.
La classe LoadVars è un contenitore per variabili. Queste variabili possono essere definite dentro Flash o caricate da file esterni, e possono essere mandate al server sia con il metodo GET che con il metodo POST, per ottenere una risposta.
Vediamo come si usa:
prima di tutto dobbiamo istanziare un nostro oggetto LoadVars, questo oggetto conterrà una variabile che chiameremo “categoria”, dopo aver spedito il suo contenuto rimarrà in attesa di risposta, appena avrà ricevuto una risposta sarà in grado di scatenare un evento per fare quello che ti pare.
var mieVariabili:LoadVars = new LoadVars();
mieVariabili.categoria = 1;
mieVariabili.onLoad = function(success:Boolean) {
if (success) {
//ho ricevuto una risposta positiva, posso fare qualcosa.
} else {
//ho ricevuto una risposta negativa.
}
};
mieVariabili.sendAndLoad("miaPagina.php", mieVariabili, "POST");
traduzione:
instanzio un oggetto LoadVars e lo chiamo “mieVariabili”
definisco una variabile chiamata “categoria” e la valorizzo “1”
definisco un gestore di evento “onLoad” che viene richiamato ogni volta che l’oggetto LoadVars riceve informazioni (ogni volta che le informazioni sono state caricate del tutto, in alternativa se ci serve fare qualcosa quando i dati iniziano ad arrivare potremmo usare onData invece che onLoad).
La funzione controlla se il caricamento ha avuto successo, possiamo decidere cosa fare a seconda dei casi.
Mando le variabili contenute nell’oggetto (in questo caso solo una variabile) e attendo.
Oltre a questo metodo sendAndLoad esistono anche send e load, separati, se vogliamo solo mandare le variabili o se vogliamo solo caricare delle variabili.
il metodo sendAndLoad prevede tre parametri:
la URL a cui mandare (e da cui caricare) i dati
il nome dell’oggetto LoadVars che deve ricevere i dati (nell’esempio l’oggetto che riceve è lo stesso dell’oggetto che manda)
il metodo di trasferimento (POST, ma se vuoi è disponibile anche GET)
La pagina PHP che riceve i dati troverà le variabili come se arrivassero da una form HTML, quindi per conoscere il valore della variabile “categoria” posso usare $_POST["categoria"], l’output sarà in questo formato:
variabile=valore&altravariabile=altrovalore&terza=terzovalore&
tutte queste variabili saranno disponibili dentro Flash dopo il caricamento, per richiamarle dovremo scrivere il nome dell’oggetto LoadVars che le contiene, seguito da un punto e dal nome della variabile, per cui seguendo l’esempio avremo caricato tre variabili che sono:
mieVariabili.variabile = "valore";
mieVariabili.altravariabile = "altrovalore";
mieVariabili.terza = "terzovalore";
L’oggetto XML funziona come l’oggetto LoadVars, supporta i metodi send, load e sendAndLoad, inoltre puoi istanziare un oggetto LoadVars per le variabili da inviare e un oggetto XML per le variabili da ricevere (e viceversa), questo è l’esempio di codice che si trova nella guida di Flash:
var login_str:String = "<login username=\\""+username_txt.text+"\" password=\\""+password_txt.text+"\" />";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://www.flash-mx.com/mm/login_xml.cfm", myLoginReply_xml);
function myOnLoad(success:Boolean) {
if (success) {
if ((myLoginReply_xml.firstChild.nodeName == "packet") &&
(myLoginReply_xml.firstChild.attributes.success == "true")) {
gotoAndStop("loggedIn");
} else {
gotoAndStop("loginFailed");
}
} else {
gotoAndStop("connectionFailed");
}
}
Instanzia due oggetti XML, in uno scrive i valori di due caselle di testo, probabilmente testo di input, dopo aver mandato l'XML così formato attende la risposta nel secondo oggetto XML.
Da tenere presente il metodo ignoreWhite che permette di leggere i file XML anche se ci sono degli “a capo” o delle tabulazioni.
Infine il metodo LoadMovie ci permette di caricare immagini esterne in jpg, png o gif.
Crei un MovieClip “segnaposto”, lo istanzi e gli assegni un nome, per esempio “placeholder”.
placeholder.loadMovie("immagine.jpg");
carica l’immagine al posto del segnaposto.
Un MovieClip supporta anche il metodo onLoad come i precedenti oggetti, puoi usarlo per ridimensionare l’immagine (altrimenti la vedresti a grandezza intera)
placeholder.onLoad = function() {
this._width = 30;
this._yscale = this._xscale;
}
placehoder.loadMovie("immagine.jpg");
questo script dopo aver caricato l’immagine la imposta a una larghezza di 30 pixel e adatta la sua altezza proporzionalmente.
Va da se che l’argomento che abbiamo passato è una stringa, quindi può anche essere una stringa caricata con un foglio XMO o con LoadVars.
Esistono anche altri metodi molto utili per questi oggetti:
getBytesLoaded e getBytesTotal sono i più apprezzati perché ci permettono di realizzare i preload.
Che altro dire... buon inizio e in bocca al lupo.

Di: Professore | 26/09/2020 18:54:16


Professore scusami:
utilizzo un form in php con flash 8, che funziona benissimo ma con FireFox 2.0.0.3 non riesco a digitare la "@" nel campo email, come posso fare????
GRAZIE!

Di: elmat | 26/09/2020 18:54:16


Ciao ragazzi ho questo problema da giorni e non riesco a risolverlo.
Io ho un pulsante in flash che quando viene utilizzato deve salvarmi il contenuto di una textArea in un file php.
Ora io ho utilizzato questo codice:
Flash
(dove smiltesto=nome della textArea)
on(press){
var dat:LoadVars=newLoadVars();
dati.nome=smiltesto.text;
dati.send("pagina.php",dati,"POST");
}
PHP:
<?
echo $_POST["nome"];
?>
Se provo a lanciarlo da flash mi da questo errore utilizzando EasyPHP:
Notice: Undefined index:nome in c:\\programmi\\easyphp1-8|www\\pagina.php on line 2
Se potete aiutarmi a risolverlo ve ne sarei grato.
Come avreete capito sono un principiante di Flash e PHP
Ciaso a tutti e grazie

Di: Night Fox | 26/09/2020 18:54:16