4

この回答fabric.Imageで提案されているように、キャンバス内から拡張されたカスタムオブジェクトを使用しています。サーバーからjson文字列を取得すると、キャンバスにロードしようとすると奇妙なエラーが発生します。

var canvas = new fabric.Canvsd();

function loadCanvas(resp) {
  // response object contains a data field
  // that's essentialy a JSON string
  var json = JSON.parse(resp.data);
  canvas.loadFromDatalessJSON(json);
}

コンソールに奇妙なプリントアウトが表示されます:Cannot call method 'setupState' of undefined (fabric.min.js: 1118)。呼び出しをに置き換えようとしましたがcanvas.loadFromJSON(json)、代わりに漠然としたSyntaxError: Unexpected token oエラーが発生しました。fabric.Imageリンクされたスレッドで提案された変更の前に通常のコードを使用した場合、このコードは正常に機能しました。追加のデータを使用してfavricのImageクラスを拡張したときに、これが欠落している可能性があるのではないかと心配しています。考え?

4

1 に答える 1

2

いくつか検索した後、fabricjsgoogleグループで同様のスレッドを見つけました。私は3つのことを台無しにしたことが判明しました:

  1. fromObject()作成した別のカスタムオブジェクトの別の場所にコールバック定義がありませんでした(いくつかありました)。
  2. loadFromDatalessJSON()単純に使うべきだったのに使っていましloadFromJSON()た。
  3. JSON.parse(json)関数に渡す前に、json文字列を実際のJSONに解析していましたloadFromJSON()。これは、json文字列を予期し、内部で解析を処理していました。

Derp。

于 2012-07-02T18:14:48.400 に答える