Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2008, 15h30   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 36
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 36
Points : 11
Points : 11
Par défaut ProgressBar sur un Multi File Upload

Bonjour à tous,

Je suis actuellement en train de créer une galerie photos en utilisant Flex.

J'ai donc utilisé les classes FileReferenceList et FileReference pour réaliser un composant d'upload qui permet d'uploader plusieurs photos.

En fait l'événement ProgressEvent.PROGRESS est écouté pour chaque chargement d'image.

Donc je parviens actuellement à faire une progressBar pour chaque image mais j'aimerais réaliser une ProgressBar générale qui correspond aux chargement de la totalité des fichiers.

J'ai tenté de faire un calcul, mais ça ne marche pas bien.

Quelqu'un peut m'aider à faire ça ?

PS : voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
private function fileSelectedHandler(event:Event):void 
{ 
   dataGridArray = new ArrayCollection(); 
   totalSize = 0; 
   loaded = 0; 
   lastBytesLoaded = new Array(); 
        var fileReferenceList:FileReferenceList = FileReferenceList(event.target); 
   fileList = fileReferenceList.fileList; 
                  /* Pour chaque photo du tableau file liste on appelle la fonction d'upload*/ 
        fileList.forEach(uploadEachPhoto); 
} 
 
private function uploadEachPhoto(element:*, index:int, arr:Array):void 
{ 
   fileReference = FileReference(element); 
                 /* Pour chaque photo on écoute l'evenement PROGRESS */ 
   fileReference.addEventListener(ProgressEvent.PROGRESS, uploadProgressHandler); 
   fileReference.addEventListener(Event.COMPLETE, uploadCompleteHandler); 
   fileReference.upload(urlRequest); 
} 
 
private function uploadProgressHandler(e:ProgressEvent):void 
{ 
   var file:FileReference = FileReference(e.target); 
 
               /* Essai de calcul qui ne donne rien */ 
   var coeff:Number = e.bytesTotal / totalSize; 
   loaded += ((e.bytesLoaded * coeff) - lastBytesLoaded[file.name]); 
   lastBytesLoaded[file.name] = e.bytesLoaded * coeff; 
 
           /* On affiche et on fait evoluer la Progress Bar */ 
   _uploadPhotosView.progressBarUploadPhotosView.visible = true; 
   _uploadPhotosView.progressBarUploadPhotosView.setProgress(loaded,totalSize); 
}
Navyel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2008, 00h29   #2
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
tu devrais changer de direction sinon tu risques de te prendre le tete pour le faire avec les octets chargés/restant.
a ta place je passerais plutot le nombre total d'image a charger a la progressBar et a chaque fois qu'une est chargé (ou déclenche une erreur) j'incremente de 1.
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h21.


 
 
 
 
Partenaires

Hébergement Web