循环动画的JQuery

循环动画的JQuery,jquery,html5-canvas,Jquery,Html5 Canvas,简单地说,使用画布,我想画10个矩形,每个矩形都有自己的标识符。 这是我所拥有的,我知道这是完全错误的: $(document).ready(function(){ var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); for(i=0;i<10;i++){ var b = new Box(); context.d

简单地说,使用画布,我想画10个矩形,每个矩形都有自己的标识符。 这是我所拥有的,我知道这是完全错误的:

$(document).ready(function(){
    var canvas = document.getElementById('myCanvas');
    var context = canvas.getContext('2d');
    for(i=0;i<10;i++){
        var b = new Box();
        context.drawImage(b, i*20,20);
    }
});

function Box() {
    this.x = 0;
    this.y = 0;
    this.width = 10;
    this.height = 10;
    this.fill = '#444444';
}
$(文档).ready(函数(){
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');

对于(i=0;i我认为应该将“Box”元素存储在一个数组中,并在每次其中一个Box发生更改时使用函数重新绘制画布:

var boxes = [];
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');

$(document).ready(function(){
    for(i=0;i<10;i++){
        boxes.push(new Box());
    }
    refreshCanvas();
});

function refreshCanvas()
{
    // -- Clear canvas:
    context .clearRect(0, 0, canvas.width, canvas.height);

    // -- Draw boxes:
    for(i=0; i<boxes.length; i++){
        context.beginPath();
        context.rect(boxes[i].x, boxes[i].y, boxes[i].width, boxes[i].height);
        context.stroke();
    }
}

function Box() {
    this.x = 0;
    this.y = 0;
    this.width = 10;
    this.height = 10;
    this.fill = '#444444';
}
var-box=[];
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');
$(文档).ready(函数(){

对于(i=0;i这里是您要使用
drawImage
绘制的图像?您的问题不清楚。您可以编辑并添加更多详细信息。非常感谢您的帮助,尽管它没有成功地将任何内容推送到数组中,尽管框()方法正在被调用。感谢您的耐心-我对这一点非常陌生。在“box”和“.push”和“[]”之间有一个不需要的空格,而“()’。我修正了我的答案,一定要这样做,它应该会工作。事实上,我还修正了一些其他问题。请完全更新您的代码。谢谢!是的,我注意到了语法。这很好-现在可以工作了。谢谢好的:)请勾选计票下面的灰色方框,将我的答案标记为已接受。这样人们就会知道这是正确的解决方案。Thx。