使用createJS绘制正方形会创建矩形

时间:2013-11-01 14:30:19

标签: javascript html5-canvas easeljs createjs

除了标题不完全正确之外,我在使用createJs绘制正方形时遇到问题。我正在绘制具有相同大边的矩形,这通常会产生一个正方形,但不适合我,我得到了这个:

enter image description here

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

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();

我有一个小提琴:http://jsfiddle.net/QWP3Z/2/

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

1 个答案:

答案 0 :(得分:5)

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