2016年7月5日火曜日

Fabric.js アンドロイドで、オブジェクトが表示されない

Fabric.jsを使っています。
パソコンのChromeや、iPhoneでは、正常に動くのに、アンドロイドのブラウザ(Chrome)でのみ、期待通りに動かずに悩みました。

var text = new fabric.IText("foo");
canvas.add(text);

と記述しましたが、テキスト(text)が表示されませんでした。
canvas部分に触れると表示されました。
つまり、データは、存在するにもかかわらず、なんらかの理由で、隠れている状態でした。

canvasの再作画のコマンドがあるのかと調べましたが、canvasにそのようなものはなく、Fabric.jsのrenderAllでも表示されませんでした。

setTimeoutを使うと表示されました。
スレッドの問題か、タイミングの問題か、根本原因は分かりませんが、とりあえず、これで解決しました。

setTimeout((function(){
    var text = new fabric.IText("foo");
    canvas.add(text);
  }).bind(this),10);

0 件のコメント:

コメントを投稿