Forum de discussion
Forum « Flash et Shockwave » (archives)
Pb avec la classe MovieClipLoader
Envoyé: 27 avril 2004, 1h43 par toph
J'ai un petit souci avec la classe MovieClipLoader, et je me demandais si des gens avait déjà expérimenté les méthodes de cette classe...
mon pb est le suivant: j'ai tout bien fait comme dans l'aide, en utilisant un ecouteur (j'avais jamais fait ça avant, mais c vrai que ça avait l'air plus propre avec) ... et donc j'arrive à charger mon clip à faire ma petite merdouille pour mettre un témoin visuel mais, il se trouve que l'animation est déjà chargée alors que le témoin et donc les méthodes (onLoadProgress, onLoadComplete et onLoadInit) me renvoient qu'elle n'en sont qu'à la moitié du téléchargement ...
Alors là je comprends plus, j'ai essayé de tout retourner dans tous les sens en me diasnt que j'avais peut-être mélangé les méthodes mais rien n'y fait ...même en ordonnant au clip chargé de s'arrêter une fois chargé (un bête stop()), il la lit quand même...
Aors, voilà, je me demandais si je devais suivre mon instinct : laisser tomber le truc de l'écouteur, très complet mais peut-être encore un peu foireux et revenir au bon vieux Bytesloaded() ... ou alors s'il y avait une subtilité que j'ai loupée ...
Merci de votre aide ... je vous joins le code :
function arc(cible, rayon, ancien, nouveau) {
ctrlx = rayon*Math.sin(nouveau);
ctrly = rayon*Math.cos(ancien);
ancrex = rayon*Math.sin(nouveau);
ancrey = rayon*Math.cos(nouveau);
cible.moveTo(0, 0);
cible.beginFill(0x999999);
cible.lineTo(rayon*Math.sin(ancien), rayon*Math.cos(ancien));
cible.curveTo(ctrlx, ctrly, ancrex, ancrey);
cible.endFill();
}
preloader = new MovieClipLoader();
ecouteur = new Object();
ecouteur.onLoadProgress = function(cible, charge, total) {
arc(visuel.cercle, 200, visuel.ancien, (2*Math.PI*charge)/total-Math.PI);
visuel.ancien = (2*Math.PI*charge)/total-Math.PI;
visuel.info = "Chargement en cours";
visuel.ratio = Math.round((charge*100)/total);
visuel.ratio += " %";
visuel.aiguille._rotation = -(180*(visuel.ancien-Math.PI))/Math.PI;
};
ecouteur.onLoadInit = function (cible_mc)
{
site.stop();
visuel.info = "... Chargement Terminé ...";
visuel.ratio = "";
visuel.onEnterFrame = function() {
this._alpha -= 10;
if (this._alpha<=0) {
this.removeMovieClip();
}
};
}
preloader.addListener(ecouteur);
preloader.loadClip("http://perso.efrei.fr/~pot/carte_de_visite.swf", "_root.site");
voilà, sachant que j'ai essayé avec le onLoadComplete qui ne marchait pas non plus ...
Encore merci
Toph'
Réponses
|