Javascript 使用createJS绘制正方形可以创建矩形

Javascript 使用createJS绘制正方形可以创建矩形,javascript,html5-canvas,easeljs,createjs,Javascript,Html5 Canvas,Easeljs,Createjs,除了标题不完全正确之外,我在使用createJs绘制正方形时遇到了问题。我画的矩形的边长都一样大,通常会生成一个正方形,但对我来说,我得到的是: 我使用的代码如下(非常简化): 函数getRandomNumber(最大值) { 返回Math.floor(Math.random()*max); } 变量颜色=[“红色”、“绿色”、“蓝色”]; 函数createTileArea() { var stage=newcreatejs.stage(“tileArea”); stage.name=“sta

除了标题不完全正确之外,我在使用createJs绘制正方形时遇到了问题。我画的矩形的边长都一样大,通常会生成一个正方形,但对我来说,我得到的是:

我使用的代码如下(非常简化):

函数getRandomNumber(最大值)
{
返回Math.floor(Math.random()*max);
}
变量颜色=[“红色”、“绿色”、“蓝色”];
函数createTileArea()
{
var stage=newcreatejs.stage(“tileArea”);
stage.name=“stage”;
变量大小=50;
用于(行=0;行<10;行++){
用于(列=0;列<10;列++){
变量id=行+列+列;
var color=颜色[getRandomNumber(3)];
var tile=new createjs.Shape();
瓷砖。图形。填充(颜色);
tile.graphics.drawRect(0,0,大小,大小);
tile.graphics.endFill();
瓷砖x=立柱*尺寸;
瓷砖y=行*尺寸;
瓷砖高度=尺寸;
瓷砖宽度=尺寸;
tile.name=id;
舞台。添加儿童(瓷砖);
}
}
stage.update();
}
createTileArea();
我这里有一把小提琴:

我的问题是:我有一个宽度和高度都为500px的画布,我生成了10个50 px高宽的矩形,为什么我得到6个水平正方形和3个垂直正方形,它们都是矩形?
这是某种缩放问题吗?

不要使用css样式来调整画布的大小,而是直接在html或代码中更改画布的宽度和高度。
否则,createJs将设置宽度和高度(默认值为300X150),css将作为缩放,将其放回-在您的示例中为-500X500。

不要使用css样式调整画布大小,而是直接在html或代码中更改其宽度和高度。
否则createJs将设置宽度和高度,这似乎默认为300X150,css将作为缩放,将其放回-在您的示例中-500X500。

Hehe,就是这样,我不知道。非常感谢你!呵呵,就是这样,我不知道。非常感谢你!
function getRandomNumber(max)
    {
        return Math.floor(Math.random() * max);
    }

var colors = ["Red", "Green", "Blue"];

function createTileArea()
    {
        var stage = new createjs.Stage("tileArea");
        stage.name = "stage";
        var size = 50;

        for (row = 0; row < 10; row++) {
            for (col = 0; col < 10; col++) {
                var id = row + "_" + col;
                var color = colors[getRandomNumber(3)];

                var tile = new createjs.Shape();
                tile.graphics.beginFill(color);
                tile.graphics.drawRect(0, 0, size, size);
                tile.graphics.endFill();
                tile.x = col * size;
                tile.y = row * size;
                tile.height = size;
                tile.width = size;
                tile.name = id;

                stage.addChild(tile);
            }
        }

        stage.update();
    }

createTileArea();