-1

canvas次のコードを使用して要素を試しています

    Shape = function(x,y){
        this.x = x;
        this.y = y; 
    };

    shapes = new array();

    shapes.push(new Shape(50,50,10,10));
    shapes.push(new Shape(100,100,10,10));
    shapes.push(new Shape(150,150,10,10));

    function animate(){
        context.clearRect(0,0, canvas.width(),canvas.height());
        var shapesLength = shapes.length;
        for(var i = 0; i < shapesLength; i++){
            var tmpShape = shapes[i];
            tmpShape.x++;
            context.fillRect(tmpShape.x,thmpShape.y,10,10);
        }
        context.fillStyle = 'yellow';
        context.fill();
        if(playAnimation){
            setTimeout(animate, 1)
        }
    }

ただし、ブラウザでこれを実行すると、次のエラーが表示されます-

ReferenceError: array is not defined    

shapes = new array();

私はそれをグローバル変数とローカル変数にしようとしましたが、どこが間違っているのかわかりませんか?

4

1 に答える 1

3

arrayこれはコンストラクターの名前であるため、大文字にする必要があります。

shapes = new Array();

さらに、角括弧表記を使用して配列を作成することをお勧めします。このような:

shapes = [];
于 2012-11-24T21:34:07.730 に答える