【发布时间】:2017-07-18 17:46:20
【问题描述】:
我有一个使用 HTML5 Canvas (createjs) 的项目,我遇到了文本笔划尖峰问题,这意味着我必须设置 2d 上下文的斜接限制。但是,父级(我无法控制)在调整窗口大小时缩放画布,这显然会重置画布上下文。
现在,我想避免在客户端中放置 onresize 事件 - 我的第一个想法就是这样使用 createjs Ticker:
createjs.Ticker.addEventListener("tick", handleTick);
function handleTick(event) {
var ctx = canvas.getContext('2d');
ctx.miterLimit = 2;
}
虽然这看起来有点浪费,但有没有更有效的方法来做到这一点,而不使用 DOM 事件?
【问题讨论】:
-
绑定到
resize是适当且直接的。如果您的画布内容是静态的,只需创建第二个内存画布并将静态内容保存到第二个画布上。在调整大小时,drawImage将第二个画布放到第一个画布上——可选缩放。如果您的内容不是静态的,则必须使用绘图命令重新渲染内容或使用第二个画布创意。不要在不断触发的“tick”处理程序中重绘,因为如果自上次滴答以来内容没有改变,您可能会不必要地重绘。
标签: javascript html html5-canvas createjs