如何动态地调用图像

How can I call to an image dynamically?

本文关键字:调用 图像 动态 何动态      更新时间:2023-09-26

我想呼叫pic1pic2picn使用的对象命名为image

image对象示例代码。

for (var src in images) {
    image[src] = new Image();
    image[src].onload = function () {
        counter++;
    };
    image[src].src = images[src];
}

,

image.pic1,image.pic2 ......image.picn
我尝试使用几种方法来调用图像对象:
col = 1; image.pic+col: NaN image.'pic'+col: image.'pic'+'1': image.pic+'1': "undefined1" image.[pic+col] image.[pic1]:

运行下一段代码:

for(var col = 1; col < n ; col++) {
    CanvasA.drawImage(image.pic1, x, y, 300, 300);
    //CanvasA.drawImage(image.pic2, x, y, 300, 300);
    //...............
    //...............
    //CanvasA.drawImage(image.picn, x, y, 300, 300);
}

这是代码的一部分:

for(var squer = 1;squer < 8 ; squer++ ) {
    y = (squer * 100)-100;
    for(var col = 0; col < 14 ; col++) {
        if (map.raw[squer][col+1] == 1) {
            x = ((col+1) * 100)-100;
            CanvasA.drawImage(image.LEAF1, x, y, BACKGROUND.LEAF.w, BACKGROUND.LEAF.h);
            //CanvasA.fillRect(x,y,100,100);
        }   
    }
}

你有一个打字错误:"images"应为"image";

试题:

var counter = 0;
for (var src in image) {
    image[src] = new Image();
    image[src].onload = function () {
        counter++;
    };
    image[src].src = images[src];
}

将新创建的图像push到另一个数组

var imageObjects = [];
for (var src in images) {
    image[src] = new Image();
    ...
    imageObjects.push( image[ src ] );
}
然后

for(var col = 1; col < n ; col++){
    for ( var i; i < imageObjects.length; i ++ ){
        CanvasA.drawImage( imageObjects[i], x, y, 300, 300 );
    }
}

应该是

image.["pic" + col]