Classe LoadVars2 con gestore d' evento onLoadProgress
Visto la mia figura di merd* fatta oggi e la testardaggine sborona intrinseca che sta dentro di me [
] ho deciso di provare a riscattarmi con quella che potrebbe essere una piccola svolta nell' utilizzo di Flash assieme a files di testo e/o linguaggi lato server [ PHP / ASP / altro ] .
Sono lieto di presentarvi la classe LoadVars2, appena sfornata da MX 2004 e testata con successo !
Questa classe e' identica a LoadVars(); tranne per l'aggiunta del metodo onLoadProgress, nome spudoratamente ricopiato dal metodo di MovieClipLoader che effettua a grandi linee la stessa cosa.
onLoadProgress, affiancato al giusto header in caso di linguaggio lato server [ vedi l'esempio eccellente spiegato da Falcao in questa pillola ] o senza alcun accorgimento, in caso di semplice file statico, vi permette di ricevere in run-time i parametri getbytesLoaded e getbytesTotal, cosi' da mettervi in grado di effettuare un preload durante il caricamento del file.
La sintassi e' sempre quella, non c'e' alcuna novita', se non un metodo in piu' autolooppato che vi terra' informati sull' andamento del caricamento.
Esempio:
codice:
var serverbytes = new LoadVars2(); // occhio a scrivere LoadVars2 e non LoadVars :-)
serverbytes.onLoad = function(success) {
trace("____________________________________");
trace("Caricati: " + this.getBytesLoaded());
trace("Totali: " + this.getBytesTotal());
}
serverbytes.onLoadProgress = function(loadedBytes, totalBytes) {
trace(loadedBytes + " - " + totalBytes);
}
serverbytes.sendAndLoad("http://miospazioweb/miofile.php", serverbytes);
Come potrete notare e' tutto uguale a prima tranne onLoadProgress che vi restituira' in qualunque momento l' attuale situazione bytes caricati e bytes totali del vostro file.
Potrete specificare il "GET" o il "POST" in send and load e/o utilizzare il load, senza problemi, provare per credere 
Eccovi la classe in tutte le sue poche linee, ma non vi dico per renderla cosi' quanti tentativi e crash ho docuto passare 
classe LoadVars2 , su file
LoadVars2.as
codice:
class LoadVars2 extends LoadVars {
// andr3a [ www.3site.it ] [ 25/11/2003 ]
// Thanks to: negatyve / Falcao / bubu77
// from HTML.IT [ www.html.it ]
private var loadedBytes:Number = new Number();
private var totalBytes:Number = new Number();
private var myIntCheck:Number;
function LoadVars2() {
super();
}
public function load(url:String):Void {
super.load(url);
setMyInterval();
}
public function sendAndLoad(url:String, return_var:Object, method:String):Void {
method = method != undefined ? method : "POST";
super.sendAndLoad(url, return_var, method);
setMyInterval();
}
private function setMyInterval():Void {
myIntCheck = setInterval(this, "checkCharge", 20);
}
private function checkCharge():Void {
loadedBytes = getBytesLoaded() != undefined ? getBytesLoaded() : 0;
totalBytes = getBytesTotal() != undefined ? getBytesTotal() : 0;
if( loadedBytes >= totalBytes && loadedBytes > 0 ) {
clearInterval(myIntCheck);
}
if( this.onLoadProgress != undefined ) {
this.onLoadProgress(loadedBytes, totalBytes);
}
}
}