Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Chargement d'un swf externe, LoadMovie et boucle enterFrame de vérif de chargement
Envoyé: 18 octobre 2004, 15h47 par dada
Les onLoad ne sont pas la bonne solution pour valider la fin d'un chargement loadMovie. C'est pas forcément bien expliqué dans l'aide.
Pour attendre que le fichier swf soit complètement chargé, il faut faire une boucle enterFrame dans laquelle on compare les bytes chargés aux bytes total. Et quand les 2 sont égaux, on stoppe la boucle et on affiche le swf chargé.
Par exemple :
script sur la deuxième image d'un projet, j'explique : si tu mets le code de chargement sur la première image, il va être lu en même temps que le swf est ouvert et çà ne marche pas. Il faut au moins mettre le code sur la 2° image. Après, si tu le mets sur un bouton ou à n'importe quel endroit de ton projet ,il n'y a plus ce problème, c'est juste dû au délai d'initialisation du lecteur Flash.
------------------------------
// stop la lecture de l'anim en cours, pas obligé selon les circonstances
stop();
// on créé un clip vide qui recevra le swf externe
this.createEmptyMovieClip('receveur', 1);
// on rend invisible ce clip en attente du chargement fini
this.receveur._visible = false;
// on charge dans ce clip un swf situé sur le disque dur dans le même répertoire
this.receveur.loadMovie('monSwf.swf');
// On déclenche une boucle pour vérifier les bytes chargés
this.onEnterFrame = function() {
// with permet de cibler la suite du script dans le clip 'receveur'
with (this.receveur) {
trace('En cours de chargement, BytesLoaded= '+getBytesLoaded());
if (getBytesLoaded() == getBytesTotal()) {
// le chargement fini, on rend visible le clip receveur
_visible = true;
// et on efface la boucle enterFrame
delete this.onEnterFrame;
}
}
};
--------------------------------------
Voilà, si c'est pas clair, hésites pas.
++
dada