per fare un esempio di upload multiplo sotto controllo, senza averlo testato (ma mi sembra sia ok), guarda qua:
codice:
listener.onSelect = function(fileRefList:FileReferenceList) {
function delayedUpload(Void):Void {
if(a < b) {
fileRefList.fileList[a].addListener(listener);
if(!fileRefList.fileList[a].upload("http://www.yourdomain.com/"))
trace("Errore con il file " + fileRefList.fileList[a].name);
++a;
}
else {
// finito gli uploads ... fai quello che ti pare
}
}
var a:Number = 0, b:Number = fileRefList.fileList.length, actualSize:Number = 0, totalSize:Number = 0,
listener:Object = {
onProgress:function(file:FileReference, bytesLoaded:Number, bytesTotal:Number){
var percentuale:Number = ((bytesLoaded + actualSize) / totalSize) * 100;
trace(percentuale);
},
onComplete:function(file:FileReference):Void {
actualSize += file.size;
// in questo punto potresti mettere una
// chiamata per verificare se l'upload precedente è andato a buon fine
// e solo in caso positivo richiamare anche la funzione
delayedUpload();
}
};
while(a < b) {
totalSize += fileRefList.fileList[a].size;
// eventuali controlli sul tipo ...
}
// sempre che i controlli, se presenti, siano andati tutti a buon fine
if(totalSize > 0) {
a = 0;
delayedUpload();
}
}