【问题标题】:setSelectionStyles not immediately affecting Textbox's _textLines.lengthsetSelectionStyles 不会立即影响文本框的 _textLines.length
【发布时间】:2021-08-10 21:43:19
【问题描述】:

我需要获取 Fabric.js 文本框中的行数。文本框中的文本由用户输入,部分文本可以使用[b][/b] 格式化为粗体。然后使用setSelectionStyles 格式化此文本(更改fontFamily)。

for (var i = 0; i < parseResults[1].length; i++) {
  fabricText.setSelectionStyles({fontFamily: "font_SeagullBold"}, parseResults[1][i], parseResults[2][i]);
}
console.log(fabricText._textLines.length);

在示例情况下,要格式化的文本为 8 行长。格式化后,由于文本换行,此数字将增加到 9。但是,_textLines.length 似乎没有立即反映这一点。有没有办法“等待”setSelectionStyles“完成”格式化文本?

【问题讨论】:

    标签: javascript fabricjs


    【解决方案1】:

    在得到_textLines.length之前调用canvas.add(fabricText)canvas.renderAll()解决。

    for (var i = 0; i < parseResults[1].length; i++) {
      fabricText.setSelectionStyles({fontFamily: "font_SeagullBold"}, parseResults[1][i], parseResults[2][i]);
    }
    canvas.add(fabricText);
    canvas.renderAll();
    console.log(fabricText._textLines.length);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多