1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| package connexion
{
import flash.display.Loader;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.utils.Timer;
/**
* Classe ConnexionTest
* Possède des fonctions de calcul de vitesse de connexion
* Ces tests reposent sur la vitesse de chargement de fichiers
*/
public class ConnexionSpeed
{
private var chargeur : Loader;
private var urlRequest : URLRequest;
private var timeStart : int;
private var timeStop : int;
private var timer : Timer;
private var tailleFichier : int;
private var chargementFini : Boolean;
/**
* Constructeur
*/
public function ConnexionSpeed (fichier : String) {
chargementFini = Boolean(false);
chargeur = new Loader();
timer = new Timer(10);
urlRequest = new URLRequest(fichier);
// on définit les évenements sur la propriété contentLoaderInfo de l'objet loader.
chargeur.contentLoaderInfo.addEventListener(Event.INIT, debutChargement);
chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, finDuChargement);
chargeur.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, avancement);
chargeur.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, indiquerErreur);
}
/**
* Démarrage du chargement du fichier
*/
public function demarrer () : void {
trace("démarrer !");
chargeur.load(urlRequest); // début du chargement
}
/**
* On définit la fonction debutChargement, executée par l'évenement INIT :
*/
private function debutChargement ( event : Event ) : void {
trace("Début chargement !");
tailleFichier = event.target.bytesTotal; // récupération de la taille du fichier
timer.start(); // départ du timer
}
/**
* On définit la fonction finDuChargement, executée par l'évenement COMPLETE :
*/
private function finDuChargement ( event : Event ) : void {
timer.stop(); // arrêt du timer
trace("Chargement terminé ! Temps : " + getTempsChargement());
trace("Taille du fichier : " + tailleFichier);
trace("Vitesse de connexion calculée : " + getVitesseConnexion() + " byte/ms");
chargementFini = true;
}
/**
* Fonction indiquant l'avancement du chargement
*/
private function avancement ( event : Event ) : void {
trace(event.target.bytesLoaded + " chargés sur " + event.target.bytesTotal + " - " + getTempsChargement());
}
/**
* Fonction indiquant si une erreur de chargmement survient :
*/
public function indiquerErreur( event : Event ) : void {
trace(event);
}
/**
* Fonction retournant le temps de chargement en cours
*/
public function getTempsChargement () : int {
return flash.utils.getTimer();
}
/**
* Fonction calculant la vitesse de connexion
* Retourne une vitesse de connexion en byte/ms
*/
public function getVitesseConnexion () : Number {
return (tailleFichier / getTempsChargement());
}
/**
* Détermine l'état du chargement
* Retourne vrai si le chargement du fichier est terminé, faux sinon
*/
public function getEtatChargement () : Boolean {
return (chargementFini.valueOf());
}
}
} |
Partager