Forum de discussion
Forum « Flash et Shockwave » (archives)
Détail du fonctionnement de LoadClip sous MX 2004
Envoyé: 28 avril 2004, 21h21 par toph
bah en fait, y a deux techniques différentes selon si tu utilises MX 2004 ou une version antérieure ...
MX 2004 est arrivé avec une classe appelée MovieClipLoader qui permet, en plus de charger image ou swf, de suivre le cours du téléchargement, ce qui est utile pour les barres de progression indicant l'état du download...
je ne suis pas sûr que ma méthode soit vraiment propre, mais elle a marché pour moi donc la voilà :
preloader = new MovieClipLoader();
ecouteur = new Object();
ecouteur.onLoadStart = function(cible) {
cible.gotoAndStop(1);
cible.enabled = false;
cilbe._visible = false;
// ces lignes te permettent de stopper un éventuelle lecture de ton anim pour attendre la fin du téléchargment. Souvent les anims commence à se lire avant que l'intégralité du swf soit chargé, ce qui donne une anim qui commence superposé à un témoin lumineux disant que normalement elle est pas encore prête ... pas super beau...
// sinon, tu peux mettre ici aussi toutes les fonctions d'initialisation de ton clip chargé... cette "méthode" (onLoadStart) est appelée une fois dès que la connexion est établie et que le flash à charger le premier bit de l'anim... c'est à dire dès que l'objet est créé physiquement dans ton anim, attention, il est encore vide par contre...
};
ecouteur.onLoadProgress = function(cible, charge, total) {
// ici tu mets les fonctions pour mettre à jour ton témoin visuel de progression du téléchargement.
// cette méthode est appelée à chaque fois que le flash reçoit des bits du clip à charger ... en gros, elle est appelée à chaque fois que l'état du téléchargement a évolué...
};
ecouteur.onLoadComplete = function(cible) {
preloader.removeListener(ecouteur);
cible.gotoAndStop(1);
cible.play(1);
// ici, tu mets les action à effectuer quand ton clip est completement chargé, comme par esemple, la suprresion du témion visuel ...
// cette méthode est appelée une seule fois dès que flash a reçu tous les bits...
// si tu veux attendre qu'il ait exécuter les actions de la première image de ton clip desormais chargé, remplace la par onLoadInit()
};
// ensuite vient la phase de création d'affectation des objets
// tu affectes un écouteur au preloader afin de pouvoir "épier chacun de ces mouvements"
preloader.addListener(ecouteur);
// et enfin tu charges ton clip externe
preloader.loadClip("url du fichier", nom_d'occurence_du_clip_qui_va_recevoir_le_swf_externe_(brut_=_sans_guillements_));
si tu n'as pas besoin de surveiller l'évolution du téléchargement, tu n'as pas besoin de déclarer un ecouteur et donc de toutes les méthodes qui s'y rattachent ... fais juste
preloader = new MovieClipLoader();
preloader = loadClip("url", nom_d'occurence);
biensûr il faut avoir créé un clip vide avant destiné de recevoir les swf externe ... et lui donner le nom d'occurence utiliser dans le loadClip...
Voilà, ça c'était pour MX 2004 (voir l'aide, si t'as pas tout compris) ...
Pour MX tout cours, ou Flash 5 ... il faut effectivement utiliser loadMovie et le principe est presque le même a part qu'il n'existe pas de méthode pour surveiller le cours du téléchargement ...
tu crées ton clip destiné à recevoir ton clip en lui donnant le nom d'occurence "monClip" par exemple ...et tu fais
monClip.loadMovie("url de ton swf");
si ça ne marche pas, c'est que tu as un problème de ciblage c'est a dans ton arborescence de clip tu ne vas pas le chercher au bon endroit ... fais alors un
trace(monClip);
juste avant, il te dira si le clip monClip existe ou non à cet endroit
et pour surveiller le cours du téléchargement il faut utiliser les méthodes du clip chargé :
monClip.getLoadedBytes()
monClip.getTotalBytes() ...
regarde dans l'aide, tu trouveras...
Voilà, voilà ...
j'espère que tu vas y arriver ... et sinon, joins ton code, on va essayer de voir...
A plus
Toph'
Réponses
|