Bug dans la classe Loader
Par Cédric Tabin le mercredi 20.02.2008, 12:45 - ActionScript - Lien permanent
J'ai constaté lors du développement de masapi que lorsque l'on utilise CTRL+ENTER dans Flash CS3, il y a un souci concernant la classe Loader et la méthode close(). En effet, celle-ci ne stoppe pas le chargement...
C'est un bug assez gênant pour tester ses projets en local pour débugger ! En prenant le simple bout de code suivant et en simulant un download au 56K :
var r:URLRequest = new URLRequest("anim.swf"); var l:Loader = new Loader(); var f:Function = function(evt:Event):void { trace("event "+evt.type); }; l.contentLoaderInfo.addEventListener(Event.OPEN, f); l.contentLoaderInfo.addEventListener(Event.COMPLETE, f); l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, f); l.load(r); setTimeout(function():void { trace("stop"); l.close(); }, 1000);
La fenêtre de trace sort ceci :
event open event progress event progress event progress event progress ... stop event progress event progress event progress ... event complete
Heureusement, cela ne se produit pas lorsque l'animation est en ligne ! De plus, je n'ai constaté ce bug qu'avec l'objet Loader (URLLoader par exemple fonctionne nickel) et seulement une fois que le chargement a été lancé (si on appelle la méthode close() directement, cela fonctionne).
Cela fait déjà un petit moment que j'ai annoncé le bug sur Mediabox pour ceux qui aimeraient tester la chose et en discuter !
Commentaires
Intéressant, à mon avis le loader doit être basé sur les réponses HTTP fournis par les serveurs, donc si tu fais en local, il y pas.
Autre chose, moi il me throw cette erreur:
Error #2029: This URLStream object does not have a stream opened
A Lundi!
Salut Ahmet,
Tiens, il passe par URLStream ??? Tu as utilisé quoi comme code ?
@++
Ben le même que toi!
Par contre je viens de me rendre compte que l'erreur survient quand le close est lancé après le onComplete, donc c'est totalement normal
Mea Culpa!
Ah ben oui
Il faut simuler le téléchargement en 56k sinon évidemment, le download est largement fini après 1sec :D
@++
Je viens de me rendre compte de ça alors que ça fait plusieurs semaines que je cherche à comprendre pourquoi un loader de fichier déconne... j'avais même pas tilté qu'en ligne ça passait.
Ce soucis n'est toujours pas réglé ?
Non je pense pas... aucune mise à jour de Flash CS3 de ce point de vue
Erf, dommage.
Ceci dit, je suis tombé sur ton blog par hasard en cherchant sur google et mediabox, tu m'avais filé un coup de main sur mediabox pour une ou deux conneries. T'es d'ors et déjà dans mes flux