2017-09-06 6 views
0

fabricjs新しいウィンドウで作成したときにi-textカーソルが正常に機能しています。 保存されたjsonを読み込んだ後、うまくいきません。 私はleague_gothicフォントを使用しています。ファブリックjsロード後にi-textカーソルが正しく動作しない

enter image description here

保存コード

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

間違ってカーソル(3文字目)で、以下の画像を参照してくださいコードをロードする

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

UPDATE:私はI-テキストオブジェクトが使用していることを見てきました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

よろしくお願いします。 –

関連する問題