2010-11-27 10 views
1

Je télécharge des données sur mon serveur à l'aide de URLLoader, et j'écoute le ProgressEvent, mais il ne distribue pas. Aucune erreur, les fichiers sont téléchargés avec succès. Pourquoi cela ne pourrait-il pas marcher?Actionscript-3 URLLoader: ProgressEvent ne distribue pas

Code comme suit:

//setup 
urlLoader.addEventListener(ProgressEvent.PROGRESS, onProgress); 

//listen 
private function onProgress(e:ProgressEvent):void { 
    trace(e.bytesLoaded + ' ' + e.bytesTotal); 
} 

Répondre

-2

Je présume que le URLLoader est une instance d'objet de chargeur? Si c'est le cas, vous devez ajouter eventListener à la propriété contentLoaderInfo.

urlLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); 
+0

URLLoader n'hérite pas de la classe Loader, il hérite de EventDispatcher – PatrickS

+0

Eh bien mon mauvais, sorte de difficile de voir quelles instances sont utilisées lorsque l'instanciation initiale n'est pas affichée, même si je suppose que j'aurais pu prendre l'indice d'urlLoader. Cela étant dit, certains ppl ont tendance à nommer leurs variables d'instance loader comme urlLoader parfois ... – Aesphere

+0

aesphere, que urlLoader est une instance de la classe URLLoader, et il semble y avoir un bug ... –

0

Vous ne l'affichez pas lorsque vous appelez la méthode load(). Il devrait être:

//setup 
urlLoader.addEventListener(ProgressEvent.PROGRESS, onProgress); 
urlLoader.load(new URLRequest(url)); 


//listen 
private function onProgress(e:ProgressEvent):void { 
    trace(e.bytesLoaded + ' ' + e.bytesTotal); 
} 
1

Je suis en retard à cette réponse, mais vu que je viens de croiser moi-même, je pensais que j'ajouter mes deux cents:

La raison pour laquelle vous ne voyez pas tout événement de progression pour un POST/téléchargement est dû au fait que l'URLLoader ne distribue pas les événements de progression (ou modifie la propriété "bytesLoaded") pour les téléchargements. Triste mais vrai.

Questions connexes