Lorsqu’on charge des images dans un script p5.js, ça se passe de façon asynchrone. C’est souvent une bonne chose car ça évite d’attendre. Mais parfois ça pose beaucoup de problèmes. Alors je cherchais depuis longtemps un moyen efficace d’être certaine que les images seraient entièrement chargées avant que la suite du script ne les utilise.

J’ai trouvé la solution grace à Perplexity, le moteur de recherche avec AI. Je lui ai demandé « what are the solutions which work for loading a lot of images in an array using p5js? », il m’a répondu avec des solutions banales (qui ne fonctionnent pas lorsque les images mettent du temps à charger). J’ai insisté en « lui disant » : « this doesn’t ensure that all images in the array are fully loaded. are there more robust solutions? ». Et là il m’a apporté la réponse que je ne trouvais pas ! Merci Perplexity !

J’utilise loadImage et une fonction « call back » qui incrémente un compteur (imagesLoaded) à chaque fois qu’une image est correctement chargée.
Lorsque le compteur imagesLoaded contient la valeur indiquée au début dans imagesToLoad, c’est qu’on a chargé autant d’images qu’on en avait prévu. On est donc prêts à la suite !

Et ça fonctionne, comme on peut le voir dans cet exemple.

Les 22 photos de cet exemples sont toutes chargées avant d’être affichées !

C’est ce que je voulais !

Print Friendly, PDF & Email
0 0 votes
Évaluation de l'article
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x