以编程方式调整 paper.js canvas 的大小:未正确重绘超出原始大小的 canvas 部分
Resizing paper.js canvas programmatically: not properly redrawing part of canvas beyond original size
示例:https://jsfiddle.net/gnxdkqgh/5/
- 尝试点击
x0.5
- 一切正常
- 尝试单击
x2
- canvas 超出原始矩形的部分未正确重绘
- 尝试快速连续单击
x2
- 您可以看到它绘制动画虚线,但无法 "clear" canvas。它只是绘制现有的破折号,形成实线。
这是 Paper.js 中的错误还是我做错了什么?
我使用的是最新的 Chrome。如果您无法重现问题,请查看屏幕截图:
问题是您在更改 canvas 的大小时没有让纸张知道您所做的。不要在调整大小函数中设置 canvas 大小,而是设置 paper.view.viewSize,这也会重置 canvas 大小。
在调整大小函数中替换
canvas.width = w;
canvas.height = h;
和
paper.view.viewSize.width = w;
paper.view.viewSize.height = h;
这将导致纸张同时更改视图大小和基础 canvas 大小 - 请参阅 paperjs.org viewSize doc
示例:https://jsfiddle.net/gnxdkqgh/5/
- 尝试点击
x0.5
- 一切正常 - 尝试单击
x2
- canvas 超出原始矩形的部分未正确重绘 - 尝试快速连续单击
x2
- 您可以看到它绘制动画虚线,但无法 "clear" canvas。它只是绘制现有的破折号,形成实线。
这是 Paper.js 中的错误还是我做错了什么?
我使用的是最新的 Chrome。如果您无法重现问题,请查看屏幕截图:
问题是您在更改 canvas 的大小时没有让纸张知道您所做的。不要在调整大小函数中设置 canvas 大小,而是设置 paper.view.viewSize,这也会重置 canvas 大小。
在调整大小函数中替换
canvas.width = w;
canvas.height = h;
和
paper.view.viewSize.width = w;
paper.view.viewSize.height = h;
这将导致纸张同时更改视图大小和基础 canvas 大小 - 请参阅 paperjs.org viewSize doc