2017-09-06 82 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

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