Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Re: loading - Préchargement

Envoyé: 27 septembre 2002, 8h47 par Oznog


Salut,

Flash c'est du streaming, les objets entre les uns après les autres en flux continu. Tu ne peux pas empêcher ça.

Flash va chercher les objets selon un ordre qui n'a rien à voir avec la ligne de temps (timeline). Mais plutôt selon l'ordre des calques (layer). De plus, dans l'onglet FLASH lors de la publicaton, tu peux spécifier "Buttom Up" ou "Top down". Ça indique à Flash de commencer à charger les éléments à partir du dernier layer vers le premier ou l'inverse.

Bon ça n'arrange pas ton problème ;-) On y arrive.

Alors la seule chose de possible avec Flash c'est d'attendre que les éléments soit chargés et en place avant d'entrer dans la zone (scène, frame) qui les concerne.

Pour ce faire, il n'y a pas 36 solution.

1. Tu dois mettre un stop(); avant le début de l'animation.

2a. Tu test si le nombre de "bytes" chargés du movieClip ( movieClip.getBytesLoaded() ) est le même que le nombre total de "bytes" ( movieClip.getBytesTotal() ). Si le nombre de "bytes" chargés est égal ou plus grand tu fait ton gotoAndPlay pour partir l'animation.

2b. Tu peux aussi tester si un nombre x de "Frame" est chargé avec "_framesloaded" et
"_totalframes".

3. Le test peut être sur un "onClipEvent" en "enterFrame" ou encore sur un "ActionFrame" avec un gotoAndPlay pour bouclé tant que le test n'est pas positif.

4. ATTENTION, Flash boggue au début de l'animation. Il a trop de chose à faire lors des premier "frame" du "timeline". Je te conseil de mettre ton STOP(); et le TEST pas avant le "frame" 15 du "timeline".

Ex : (frame 15 Le test et le stop, frame 16, ton animation.)
Timeline
1|2|3|4|5|6|...15|16

Exemple de code avec un "FrameAction" sur le "frame" 15 : (Ce code test l'ensemble des "bytes" du Flash et non pas seulement ceux d'un movieClip.) J'ai ajouté sur le "frame" 2 un "label" Chargement et sur le "frame" 16 un "label" Animation.

nCharge=Math.floor(this.getBytesLoaded()/this.getBytesTotal()*100)
if (number(nCharge)>=100) {
this.gotoAndStop ("Animation");
} else {
this.gotoAndPlay ("Chargement");
}
stop();

Comme tu voie, je fait un pourcentage. Tu peux alors afficher en même temps ce pourcentage pour indiquer au visiteur le déroulement du chargment. En ajoutant par exemple sur la scène un champ texte dynamique avec le nom de variable "Pourcentage" et ce code juste avant le IF.

_root.Pourcentage = nCharge + "%";

Ciao
Oznog


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

.
@