Barre de chargement sans frameloaded

Résolu
Signaler
Messages postés
140
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
15 mai 2008
-
Messages postés
140
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
15 mai 2008
-
Cedric :question) [mailto: mailto:]

Bonjour, J'aimerai faire une barre de chargement mais mon probleme c'est que les explications que j'ai trouvé utilisent l'action "FrameLoaded".(qui ne permet que de savoir si une frame est chargée ou non)

Y a t-il une autre façon de programmer une barre de chargement pour qu'il y ait une proportionnalité dans l'animation (car dans mon animation tout est quasiment chargé dans ma deuxième frame) ?

Ou alors, Y-a-t-il une fonction permettant de savoir la quantité chargé (et non par frame)?

J'espère que vous avez compris mon message.

Merci d'avance de vos (votre) réponse(s) !

4 réponses

Messages postés
455
Date d'inscription
mardi 17 septembre 2002
Statut
Membre
Dernière intervention
22 juillet 2007

C'est tres simple :

Tu créé une séquence, que tu mettra avant ton animation. Tu créé ton fond avec les champs texte adéquat, et sur un nouveau calque, deux frame : le premier ou tu mets :

total_bytes = _root.getBytesTotal();
loaded_bytes = _root.getBytesLoaded();
total_bytes2 = int(total_bytes/1024);
loaded_bytes2 = int(loaded_bytes/1024);
remaining_bytes = int((total_bytes-loaded_bytes)/1024);
percent_done = int((loaded_bytes/total_bytes)*100);
bar.gotoAndStop(percent_done);
ifFrameLoaded ("Séquence 1", 2) {
gotoAndPlay("Séquence 1", 1);
}

J'explique le code :

_root.getBytesTotal() va cherche le poids total de ton animation en bytes

_root.getBytesLoaded() chercher combien de bytes on été chargés jusqu'à présent

int(total_bytes/1024) va diviser les total_bytes par 1024 (en donnant un arrondi entier) afin d'obtenir des Ko, unité plus connue par les visiteurs

int((total_bytes-loaded_bytes)/1024) est l'opération utilisée pour savoir combien de bytes il reste à charger

int((loaded_bytes/total_bytes)*100) donne l'avancement en % du chargement de ton animation

bar.gotoAndStop(percent_done) --> bar serai le cip que tu as créé, avec une barre, dans la frame 1, qui fai jsute 1 pixel (donc quasi invisible) et qui donne le total dans la frame 100. En gros, tu fais ce ke tu veu entre, mais il faut que la frame 1 représente tes 1%, et la frame 100 tes 100%. En gros, le clip barre avancera en fonction de la variable percent_done : si percent_done = 65 (dc 65 %), le clip barre avancera à la frame 65

ifFrameLoaded ("Séquence 1", 2) {
gotoAndPlay("Séquence 1", 1);
} --> Si l'image 2 de la Séquence 1 est chargé, alors lire l'image 1 de la séquence 2 (de préférence mettre, pr l'image chargée, la fin de ton animation)

Sinon tu peux aussi utiliser _framesloaded et _totalframes :

if (_root._framesloaded >= _root._totalframes) {
gotoAndPlay ("Séquence 1", 1);
} else {
gotoAndPlay(1);
}

N'oublie pas de mettre sur la deuxième frame de ton loading :
gotoAndPlay(1);

Sait-on jamais ;)

Je ne m'exprime pas tres bien, c'est ^pourquoi j'espere que tu as compri lol. Au pire, [mailto:thibault.martinlagar@noos.fr mail moi]

Naixn
Messages postés
455
Date d'inscription
mardi 17 septembre 2002
Statut
Membre
Dernière intervention
22 juillet 2007

J'ai oublié, tu peux mettre un champs de texte dont la varible sera : texte, et dans ton code tu mets :

texte = "Vous avez chargé " + loaded_bytes2 + " Kb sur " + total_bytes2 + " kb, soit " + percent_done + " %.

Tu peux aussi faire plusieurs champs de texte pour séparer tout ca, les possibilité sont nombreuses ;)

Naixn
Messages postés
455
Date d'inscription
mardi 17 septembre 2002
Statut
Membre
Dernière intervention
22 juillet 2007

Niarf, je corrige le texte :

texte = "Vous avez chargé " + loaded_bytes2 + " Kb sur " + total_bytes2 + " kb, soit " + percent_done + " %.";

Voilà, faut pas oublier de fermer les guillement, et de mettre le ; sinon, flash yen a pas content

Naixn
Messages postés
140
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
15 mai 2008
1
je suis retomber sur ce message par hazard et je viens de voir que je ne t'avais meme pas remercier,

merci alors ! (et desole pour le grand retard)