在src/core目录下, 新建一个文件: CanvasTextEditor.ts. 写上最简单的代码, 在canvas上渲染出一行Hello, world!...MDN是这样描述的:
actualBoundingBox: 渲染文本的矩形边界
fontBoundingBox: 渲染文本的所有字体的矩形边界
看完文档, 还是不确定哪一个使我们想要的...., 修改鼠标样式
接下来, 我们要实现的是这个功能:
当我们的鼠标hover到文字上的时候, 需要修改鼠标的样式, 类似CSS中的cursor: text;
我暂时想到了一种简单的方案: 就是当鼠标移动到某些区域的时候..., 给canvas一个白色背景色:
重构src/core/CanvasTextEditorText.ts, 给文字设置一个黑色默认颜色:
这样, 我们可以清晰地看到, 文字后半段没有显示:
接下来...先找到一个符合要求的最长第一行. 以此类推, 直到第n行.
3. 如果后期遇到了性能问题, 我们就使用二分法, 来确定每一行的字符数, 优化算法性能.