J'ai un soucis avec un script, qui permet, entre autres, d'afficher à l'écran la vitesse de téléchargement de l'utilisateur, affichage actualisé toutes les 2 secondes.
Ne maitrisant pas encore ActionScript (Flash5), je peux simplement faire des suppositions.
Pour commencer le script, et mes commentaires :
onClipEvent (enterFrame) {
total = _root.getBytesTotal(); // affichage du poids total de l'anim
reste = _root.getBytesTotal()-_root.getBytesLoaded();
reste = Math.round(reste); // determination du reste de l'anim à charger avec un arrondi à l'entier le plus proche
while ( (_root.getBytesTotal()-_root.getBytesLoaded()) > 0){ // tant que le reste de l'anim à télécharger est supérieur à 0 octet
t0 = t0.getSeconds();
t1 = t1.getSeconds();
load0 = _root.getBytesLoaded ();
while (t1 < t0.getSeconds +2){ // tant que 2 secondes ne ce sont pas passées, on compare ...
t1=t1.getSeconds; // on renvoie la valeur de t1 pour comparaison.
}
load1 = _root.getBytesLoaded; // hop ! nouvelle variable ! 2 secondes après (t1 = t0 + 2)
speed = ((load1 - load0) / 2000); // calcul rapide ...
speed = Math.round(speed); // arrondi de la valeur obtenue, et speed est affichable ! (en ko/s)
} // et on recommence ...
gotoAndPlay (2); // si on est là, c'est que le chargement est terminé : reste <= 0
}
Donc maintanant, je suppose ! Mon problème se situe au niveau de la comparaison t1/t0 ?
Ne pourrait-on pas utiliser une fonction de calcul d'intervale ?
Autant de questions, autant d'hypothèses ...
J'attends des commentaires s'il vous plaît.


#1
Posté 28 May 2002 - 15:24 PM
#2
Posté 28 May 2002 - 21:01 PM
la vitesse? en Ko par seconde je suppose.
si c'est par intervalles de 2 secondes et bien tu regarde simplement ton getbyteloaded au bout de 2 secondes, tu divise par 2 et tu as son taux de chargement par seconde.
c'est ça que tu veux?
si c'est par intervalles de 2 secondes et bien tu regarde simplement ton getbyteloaded au bout de 2 secondes, tu divise par 2 et tu as son taux de chargement par seconde.
c'est ça que tu veux?
#3
Posté 29 May 2002 - 14:23 PM
QUOTE |
si c'est par intervalles de 2 secondes et bien tu regarde simplement ton getbyteloaded au bout de 2 secondes |
C'est exactement ça. Et c'est que je pensais pouvoir faire avec le script déposé hier - Sauf qu'il semblerait que j'ai des problèmes avec mes variables t0 & t1. La première évolue au cours du temps, alors que la seconde devrait être réinitialisée toutes les deux secondes - Et ainsi permettre un calcul.
Mais ça marche pô, je me retrouve avec une boucle infinie ... "Script en cours d'utilisation qui ralenti considérablement votre système, et pourrait le faire planter (!). Voulez-vous y mettre fin ?"
#4
Posté 29 May 2002 - 14:31 PM
bon on va y aller pas à pas.
pourquoi deja ça :
while (t1 < t0.getSeconds +2){ // tant que 2 secondes ne ce sont pas passées, on compare ...
t1=t1.getSeconds; // on renvoie la valeur de t1 pour comparaison.
}
pourquoi pas ça :
t2=t0+2;
while (t1 < t2){ // tant que 2 secondes ne ce sont pas passées, on compare ...
t1=t1.getSeconds; // on renvoie la valeur de t1 pour comparaison.
}
essai de ne pas mettre de calcul dans tes while, if etc... enfin moi ya des erreur qui vienne des fois à cause de ça...
pourquoi deja ça :
while (t1 < t0.getSeconds +2){ // tant que 2 secondes ne ce sont pas passées, on compare ...
t1=t1.getSeconds; // on renvoie la valeur de t1 pour comparaison.
}
pourquoi pas ça :
t2=t0+2;
while (t1 < t2){ // tant que 2 secondes ne ce sont pas passées, on compare ...
t1=t1.getSeconds; // on renvoie la valeur de t1 pour comparaison.
}
essai de ne pas mettre de calcul dans tes while, if etc... enfin moi ya des erreur qui vienne des fois à cause de ça...
#5
Posté 29 May 2002 - 19:54 PM
il ne faut pas utiliser dans ton cas la boucle while, en fait il ne faut pratiquement jamais l'utiliser
Par contre il faut user (abuser) des if. Dans ton exemple remplace tout tes while par des if, et tu retrouvera la condition que tu cherches. Tu as mis
et à la place si on fait
on obtient la même chose 8)
a+

Par contre il faut user (abuser) des if. Dans ton exemple remplace tout tes while par des if, et tu retrouvera la condition que tu cherches. Tu as mis
QUOTE |
while ( (_root.getBytesTotal()-_root.getBytesLoaded()) > 0){ // tant que le reste de l'anim à télécharger est supérieur à 0 octet |
et à la place si on fait
QUOTE |
if ( (_root.getBytesTotal()-_root.getBytesLoaded()) > 0){ // si le reste de l'anim à télécharger est supérieur à 0 octet |
on obtient la même chose 8)
a+
#6
Posté 29 May 2002 - 21:27 PM
par contre il faut te débrouiller pour que les actions sur ta frame se répete... un petit gotoandplay prevframe;
#7
Posté 29 May 2002 - 21:31 PM
Chipaldance,
c'est bon il a fait son script sur un onClipEvent (enterFrame) donc c'est déjà ça de pris 8)
c'est bon il a fait son script sur un onClipEvent (enterFrame) donc c'est déjà ça de pris 8)
#8
Posté 29 May 2002 - 21:33 PM
en effet, j'avais un peu la fleme de relire le script du haut... et paf je me suis fait avoir. :?
#9
Posté 30 May 2002 - 08:59 AM
C'est bon les petits gars je reprends les commandes ! - Et j'essaye de voir ce qu'il est possible de faire.
Merci d'avoir pris la peine de répondre.
Allez j'essaye !
Merci d'avoir pris la peine de répondre.
Allez j'essaye !
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)