Therefore, I upload several images to several canvases mainly (one image per canvas / ctx - its slide show). I want every image to load before trying to draw an image on canvas.
Here is the code ...
- In Example 1, I use 3 onload events (one for each image)
- In example 2, I use one onload event, but this is the last image that is called in the for loop
Question: Can I use Example 2 and be sure that if the last image is uploaded, then the previous images must be uploaded?
Also ---- I already tried to do this, but can everything be done in a for loop? I could not get it to work. See example 3
Example 1 3 onload events
var img=[0,'slide1','slide2','slide3']; for (var i=1;i<=3;i++) { img[i] = new Image(); img[i].src = '/images/slide' + i + '.png' } img[1].onload = function() {
Example 2 only the last onload event
var img=[0,'slide1','slide2','slide3']; for (var i=1;i<=3;i++) { img[i] = new Image(); img[i].src = '/images/slide' + i + '.png' } img[3].onload = function() {
Example 3 one load in a for loop to execute all onload events
var img=[0,'slide1','slide2','slide3']; for (var i=1;i<=3;i++) { img[i] = new Image(); img[i].src = '/images/slide' + i + '.png' img[i].onload = function() {
I suppose I cannot do Example 3 because the image probably will not be loaded by the time the loop cycle starts a second time and overwrites the onload event for the next image, thereby erasing the onload event for the previous image. Right?
source share