2017-09-06 83 views
0

fabricjs当我在新窗口中创建时,i-text光标正常运行。 但加载保存的JSON后,它不能正常工作。 我正在使用league_gothic字体。fabricjs加载json后i文本光标无法正常工作

请参阅下面有错光标(第3个字符) enter image description here

保存代码

savejson = JSON.stringify(canvas.fabric.toJSON()) 

荷载规范画面

canvas.fabric.loadFromJSON(loadjson, function(){ 
... 
} 

更新:我已经看到了我文本对象使用console.log并找到cursoroffsetCache变量。但是我不知道如何修复它。
有没有人遇到过这类问题?

+0

如果您提供完整的JSON,我可以做出更好的答案。 – AndreaBogazzi

回答

0

这通常是画布上未加载字体的错误。 您应该确保在使用该字体之前加载了该字体。 如果不是,画布将使用类似的字体(arial?),它将使用该错误的字体来测量文本,并且您将保持错误的测量。

你必须解决它2路:

1)使用正确的字体管理器,例如https://github.com/typekit/webfontloader容易,体积小,做工不错。 在负载的回调中,加载您的JSON。

不太准确:

2)从加载JSON,具有1或2秒的超时之后,删除fabric.charWidthsCache使得错误的测量结果将被删除。 为你的文本对象设置_forceClearCache为true,以便触发新的测量(并且字体在该时间之前已完成加载),请再次请求renderAll。

+0

非常感谢,您的救命恩人。 –