event.point没有用paper.js调整大小

时间:2014-01-02 17:31:06

标签: javascript paperjs

这将拖动我的矩形路径。如果窗口没有调整大小,它可以很好地工作。

function onMouseDrag(event) {
  MyRectanglePath.position = event.point;
}

这会将我的游戏调整为100%宽度或100%浏览器窗口长度的正方形。

    function OnResizeCalled() {
            var gameWidth = window.innerWidth;
            var gameHeight = window.innerHeight;
            var scaleToFitX = gameWidth / 640;
            var scaleToFitY = gameHeight / 640;

            var currentScreenRatio = gameWidth / gameHeight;
            var optimalRatio = Math.min(scaleToFitX, scaleToFitY);
            canvas.style.width = 640 * optimalRatio + "px";
            canvas.style.height = 640 * optimalRatio + "px";
    }

// Resize
window.addEventListener("resize", OnResizeCalled, false);
OnResizeCalled();

我的浏览器窗口越小,拖动它时矩形离我的鼠标越远。如何使用画布的其余部分进行event.point缩放?

2 个答案:

答案 0 :(得分:4)

Paper.js不支持手动调整画布大小,因为这会炸毁像素并导致所有类型的内部问题。它还会干扰Retina屏幕上的HiDPI处理。

但您可以使用以下方法调整画布大小:

paper.view.viewSize = [width, height];

我希望这有帮助!

答案 1 :(得分:0)

Umm正如JürgLehni先生所说,Paper.js并不是为支持手动调整画布大小而设计的。当paper.view.setViewSize()将画布扩展/缩小到该大小时。

如果要缩放画布内的内容(例如路径),则必须使用.transform();

将变换应用于每个项目(使用正确的矩阵)。