Bloquer l'exécution d'un script

cs_flexx Messages postés 42 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 août 2010 - 16 déc. 2006 à 01:36
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008 - 22 déc. 2006 à 12:09
Bonjour

Je suis en train de réaliser un script permettant de précharger des images avant leur utilisation.
Pour cela, je définie une fonction à appeler à la fin du chargement (déterminé par l'événement onload de l'image).

Il marche de la manière suivante :

// Crée et lance le préchargement d'images
var imgPreloader = new ImagePreloader();
imgPreloader.addImageSrc("image.gif");
imgPreloader.setCallback("finChargement()");
imgPreloader.preloadImages();

// Fonction appelée à la fin du chargement des images
function finChargement(){
   // On continue l'exécution
}

Le souci, c'est que l'on est obligé de définir dans une fonction les actions à effectuer à la fin du chargement des images.

J'aimerais donc maintenant faire une fonction "bloquante" qui préchargerai une image en bloquant l'exécution du script et en le reprenant à la fin du chargement.

En gros, cela pourrait avoir cette forme :

Instruction 1
imgPreloader.preload("img.gif");
Instruction 2

L'instruction 2 ne serait exécutée seulement à la fin du préchargement de img.gif.

Auriez-vous une solution à me proposer ?

Merci d'avance

2 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 déc. 2006 à 08:32
B
onjour...
essaies en posant un flag dans le prototype preload qui passe à vrai en fin d'exécution...

var bContinue=false;

function Instruction(){
 }
function preload(){
  ...blalbla...
  bContinue = true;
}
function Instruction(){
  if( bContinue)
    on fait ce qu'on a à faire...
  else
    SetTimeout( Instruction(), delay); // on rappel
 }
en fait on passe par l'appel de fonctions,
aucune garantie les navigateurs gérant le chargement bizarrement, je dis cela pour avoir essayer de le comprendre.

il y a aussi la proptiéte complete des images si true veux dire que c'est OK...

il y a aussi l'événement onload sur l'image qui peut déclencher l'instruction suivante...

voila des pistes à toi de faire suivant ton besoin réel !!



;0)
0
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
22 déc. 2006 à 12:09
Heu... setTimeout ca ne prend pas de majucule à ce qu'il me semble...

Et tu ne dois pas mettre de parenthète à la fonction à appeler, (sinon tu renvoie la valeur de retour ce celle-ci)

> setTimeout(Instruction, delay);

Pourquoi notre PC fait-il toujours ce qu'on lui dit ... et pas ce qu'on veut ???
0
Rejoignez-nous