3

我正在使用 EaselJS 在 Canvas 中创建动画背景。我想知道为什么一旦我将画布设置为窗口大小,我的精灵就会被缩放......图像看起来很拉伸......

$('body').append(''); $('#backgroundCanvas').height($(window).height()); $('#backgroundCanvas').width($(window).width());


var sprite = new createjs.SpriteSheet({
          "animations":
            {
                "run": [0, 6, "run", frequency]},
                "images": [url],
                "frames":
                    {
                        "height": height,
                        "width":width,
                        "regX": 0,
                        "regY": 0,
                        "count": count
                    }
            });
                    var item = new createjs.BitmapAnimation(sprite);    
                    item.height = height;       
                    item.width = width;             
                    //item.scale = item.scaleY = item.scaleX= 0.5;  
                    item.x = positionX;         
                    item.y = positionY;
                    item.dirX = 1;  
                    item.dirY = 1;      
                    item.vX = 4;            
                    item.vY = 4;


                    item.gotoAndPlay("run");

                    stage.addChild(item);
4

2 回答 2

3

当您使用 CSS 缩放画布时,它会缩放内容,因为它的像素数相同。用 JavaScript 缩放它(设置宽度和高度属性),它会改变像素的数量,并且不会拉伸你的内容。

干杯。

于 2013-03-23T00:08:28.810 回答
2

重要的是要知道画布对象从 html attr 宽度和高度获取其宽度和高度 更改 CSS 的宽度和高度只会缩放画布对象

所以你有 2 个解决方案:使用这个 html

<canvas id="backgroundCanvas" width="968" height="358"></canvas>

或将您的代码更改为:

$('#backgroundCanvas').attr("height",$(window).height());
$('#backgroundCanvas').attr("width",$(window).width());

现在我可以告诉你干杯;)

于 2013-12-29T11:47:07.200 回答