如何制作两个变量的变量

how to make a variable of two variables

本文关键字:变量 两个 何制作      更新时间:2023-09-26

在你读到这篇文章之前,我的第一个帐户被封锁了,因为我问了不好的问题。所以请不要投反对票,而是说我做错了什么

所以我有这个脚本:

var img1 = new Image()
img1.src="image1.jpg"
var img2 = new Image()
img2.src="image2.jpg"
var img3 = new Image()
img3.src="image3.jpg"
function Canvas() {
    var ctx = document.getElementById('slider').getContext('2d');
    var pic=1
    function slider() {
        this.draw = function() {
            if(pic<4){pic++}
            else{
                pic=1
            }
            var img = "img"+pic
            ctx.drawImage(img,0,0,ctx.canvas.width,ctx.canvas.height)
        }
    }
    var slider = new slider();
    function draw() {
        ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);
        ctx.save();
        //draw
        slider.draw();
        //draw
        ctx.restore();
    }
    var animateInterval = setInterval(draw,100) 
}
window.addEventListener('load', function(event) {
Canvas();
});

我正在尝试在我的画布上绘制图像 1、2 或 3。但我也有var pic wich有数字。所以我试着ctx.drawimage(img+pic,0,0)var img = "img"+pic然后画出来。但它对我不起作用。

我希望你能接受我的问题,并能回答它,谢谢

改用数组

var img = [];
/*  you should use a for loop here */
for (var i = 0; i < 3; i++) {
   img[i] = new Image();
   img[i].src = "image" + (i+1) ".jpg";
}

稍后您用img[pic]引用正确的图像。确保仅使用 0img.length - 1 之间的索引

不要使用单独的变量,使用数组。

var images = [ new Image(), new Image(), new Image() ];
for (var i = 0; i < images.length; i++) {
    images[i].src = "image" + (i+1) + ".jpg";
}

然后引用Slider()函数中的数组:

var pic = 0;
function slider() {
    this.draw = function() {
        pic = (pic + 1) % images.length;
        var img = images[pic];
        ctx.drawImage(img,0,0,ctx.canvas.width,ctx.canvas.height)
    }
}

错误似乎是您引用了字符串"img1"而不是对象img1。尝试改用数组。设置以下内容:

...
var pic=0;
var img=[img1,img2,img3];
function slider() {
    this.draw = function() {
        if(pic<3){pic++}
        else{
            pic=0;
        }
        ctx.drawImage(img[pic],0,0,ctx.canvas.width,ctx.canvas.height)
    }
}
...