Connaitre le temps de chargement en millisecondes d'une image externe

Résolu
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 23 avril 2010 à 18:52
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 25 avril 2010 à 19:57
Hello,

pour un mon diaporama j'utilise un SetInterval() afin de lire mes images en mode "slideshow", dans ma fonction SetInterval() j'attache sur la scène un clip qui effectue un compte à rebours sur 6 secondes, les 6 secondes étant la durée de l'intervalle. Le problème c'est qu'en ligne, et ce suivant les connexions internet de chaque utilisateur, le temps de chargement d'une image sera plus ou moins loin, par conséquent j'aimerais ajouter un paramètre qui me permette de déclencher mon compte à rebours seulement lorsque l'image est chargée, et donc il faudrait pour cela que je connaisse le temps en millisecondes du chargement de l'image.
J'avais pensé créer une variable du type "chargement" et faire ensuite un truc du genre :
var chargement:Number;

function LireDiaporama(){
chargement = //le temps de chargement de l'image à charger;
...blablabla...;
}

Diap SetInterval(LireDiaporama, 6000+chargement);


Voilà, donc en gros je suis à la recherche d'une fonction qui permette de définir sur le navigateur de l'utilisateur le temps en millisecondes que mettra l'image à se charger.
Si quelqu'un connait un truc, je suis preneur.

Merci à toutes et à tous.

BBFUNK01

2 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 avril 2010 à 19:57
Ca y est j'ai trouvé : il suffisait en fait de relancer l'intervalle dans le onLoadInit de mon image :
function ChargerImage(){
TempsA = Temps;
...blablabla...;
Listener.onLoadProgress = function(){
if(pourcentage == 100){
TempsB = Temps;
Difference = TempsB-TempsA;
}
Listener.onLoadProgress = function(){
clearInterval(Diap);
Diap = setInterval(SlideShow, 6000+Difference);
}
...blablabla...
}

et ça marche :)

BBFUNK01
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 avril 2010 à 16:38
Hello,

j'avance dans mes recherches :
j'ai créé une fonction qui définit, en millisecondes, le temps qui passe dans mon animation, j'ai ensuite défini 3 variables qui me permettent de récupérer le nombre de millisecondes au début du chargement de mon image (TempsA), puis le nombre de millisecondes à la fin du chargement de l'image (TempsB), et enfin la différence de ces 2 nombres pour connaître le nombre de millisecondes écoulées durant le chargement de l'image (Difference = TempsB-TempsA). Donc j'ai tous les éléments nécessaires pour modifier mon intervalle dans ma fonction LireDiaporama(), mais le problème c'est que la variable Difference n'est pas prise en compte dans mon setInterval(), du fait que la variable Difference n'est connue qu'après chargement complet de l'image, donc comment faire pour modifier dynamiquement la valeur de mon intervalle lorsque la variable Difference est connue ?

Voici le code en cours de finalisation :
var Temps:Number = getTimer();

function CalculerTemps(){
Temps +=10;
}

CalculTemps = setInterval(CalculerTemps, 10);

var TempsA:Number;
var TempsB:Number;
var Difference:Number = 0;

function ChargerImage(){
TempsA = Temps;
...blablabla...;
Listener.onLoadProgress = function(){
if(pourcentage == 100){
TempsB = Temps;
Difference = TempsB-TempsA;
}
...blablabla...
}

monBoutonPlay.onRelease = function(){
Diap = setInterval(SlideShow, 6000+Difference);
//comment faire pour que la nouvelle valeur "Difference" soit prise en compte
//au fur et à mesure que les différentes images s'affichent ?
}


Si quelqu'un a une idée...

Merci,

BBFUNK01
0
Rejoignez-nous