Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Re: Chargement avec barre de progression sous FlashMX : code d'exemple

Envoyé: 2 décembre 2004, 13h22 par dada


Salut,

Je me demande où tu as pu aller chercher un tel ... (code?) bazard de téléchargement ?! J'ai jamais vu çà.

Sans parler de cette étrange quantité de "IF" dont je ne comprend pas le sens, je me demande aussi ce que peut signifier ce "loaded_bytes +=10000;".
Bref, çà parait être le résultat d'un travail sur Flash1 !! Du n'importe quoi...

Tout d'abord, tu devrais te mettre à lire l'aide de Flash, tu apprendras petit à petit comment on programme sous FlashMX.

Ensuite, en faisant une recherche avec le mot "chargement" sur ce forum, tu trouveras sûrement un certains nombre de renseignements utiles.

Je vais t'expliquer brièvement comment faire un pré-chargement, avec un code d'exemple :

D'après mon expérience, la meilleure méthode consiste à créer un SWF vide (ou presque) qui charge par LoadMovie le fichier SWF de ton site.

Appellons le SWF vide "chargeur.swf" et celui du site "site.swf".

Dans chargeur.swf, on va créer un clip "barre_mc" dans lequel on crée un rectangle fin en Y et large en X (une barre de chargement quoi). On prendras soin de placer le coin haut-gauche du rectangle sur le point 0 du clip, et de donner le nom d'occurence "barre_mc" à ce clip après l'avoir placé sur la scène.

Ensuite, on va créer une image clef sur la 2° image de la timeline (cf cette adresse pour savoir pourquoi la 2° image : http://www.trucsweb.com/Forum/voirmessage.asp?forumid=17&messageid=18877&posparent=5).
Et sur cette image clef, on va placer le code suivant :
---------------------------------------
// un stop pour éviter que la tête de lecture saute de 1 vers 2, etc...
stop();
// on réduit la barre à néant en X
this.barre_mc._xscale = 0;
// on créé un clip vide qui recevra le swf externe
this.createEmptyMovieClip("site", 1);
// on rend invisible ce clip en attente du chargement fini
this.site._visible = false;
// on charge dans ce clip un swf situé sur le disque dur dans le même répertoire
this.site.loadMovie("site.swf");
// On déclenche une boucle pour vérifier les bytes chargés
this.onEnterFrame = function() {
// on crée une variable 'percent' qui contient le pourcentage du site chargé
var pourcent = (this.site.getBytesLoaded()/this.site.getBytesTotal())*100;
// on déforme la barre du même pourcentage que le chargement en cours
this.barre_mc._xscale = pourcent;
// Si c'est chargé à 100%
if (pourcent>=100) {
// on efface la boucle enterFrame
delete this.onEnterFrame;
// on supprime de la scène la barre de chargement
this.barre_mc.unloadMovie();
// on rend visible le clip "site"
this.site._visible = true;
}
};
---------------------------------------

Visuellement, tu devrais voir la barre progresser jusqu'à la fin du chargement de site.swf.

Je me rend compte à l'instant qu'il n'y rien pour dire jusqu'où la barre ira au maximum. Donc, dans le clip barre_mc, on pourrait créer un autre clip "evolution_mc" dans lequel on mettra le rectangle ; et un autre "fixe_mc" dans lequel on peut mettre un autre rectangle vide, qui sera le contour de la barre. Dans ce cas, il faut remplacer dans le code "this.barre_mc" par "this.barre_mc.evolution_mc" (sauf pour this.barre_mc.unloadMovie();) afin de toujours correctement cibler notre rectangle de progression.

Si tu as besoin de précisions, n'hésites pas à demander mais penses d'abord à lire l'aide de Flash ; le dictionnaire ActionScript, même s'il comporte parfois de petites erreurs, est excellent pour apprendre Flash.


Pour revenir à ton code, est-ce que les IF ne servent pas à allumer ou éteindre 10 boutons en fonction du chargement ? Si c'est le cas, on peut remplacer tes quelques dizaines de lignes par 4 ou 5 lignes.
Franchement, donne ce code à manger à ta corbeille ;) elle ne demande que çà :)

++
dada


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@