Следующий фрагмент кода предназначен для циклического перемещения по массиву (который содержит 4 объекта); с каждой итерацией предполагается создать изображение карты. После 4 итераций каждая сторона должна иметь по 4 карты.Почему я вижу только последнее загруженное изображение, используя этот код JavaScript?
Проблема: отображается только последнее изображение (т. Е. Элемент myHeroCards [3] .image). Поле предупреждения отображается последовательно с каждой итерацией: «0», «1», 2 ».
Связанные сообщения ссылаются на проблемы с использованием« для циклов »для шага, хотя массив, но я не думаю это проблема, потому что я могу получить любое изображение, которое будет отображаться, заменив x
на значение 0-3.
Я подозреваю, что взаимодействие с тем, как работает onload, и как вычисляются операторы цикла, . подробности
function startingCardLayout(){
var nextHeroCard=0;
var x=0;
for (i=0;i<=2;i++){
myHeroCards[x].image.onload = function(){ctx.drawImage(myHeroCards[x].image,(xFirstCol+(x*xColInc)),100,xCardSize,yCardSize);}
alert(x);
x=x+1;
}
}