Forums Développement Multimédia

Aller au contenu

Affichage de la vitesse de téléchargement

PAO Flash

8 réponses à ce sujet

#1 SaM1327249787

    Ceinture Blanche

  • Members
  • Pip
  • 7 messages

Posté 28 May 2002 - 15:24 PM

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.

#2 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12758 messages

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?

#3 SaM1327249787

    Ceinture Blanche

  • Members
  • Pip
  • 7 messages

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 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12758 messages

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...

#5 supertomate

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 4147 messages

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 smile.gif
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 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12758 messages

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 supertomate

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 4147 messages

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)

#8 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12758 messages

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 SaM1327249787

    Ceinture Blanche

  • Members
  • Pip
  • 7 messages

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 !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)