2017-02-15 12 views
1

の作品、「curvedText」は、しかし、fabricjsへの最近の更新が停止するようにプラグインをレンダリングしていますJSON経由で読み込み中。次のスニペットはこれを示しています。ロードcurvedTextもはや私はfabricjsための優れたプラグインを使用していますfabricJS 1.7.3で

以下の両方のスニペットは、使用されているfabricJSのバージョンとまったく同じです。

1.7.2バージョン:

$(function() 
 
{ 
 
    canvas = new fabric.Canvas('c'); 
 
    var CurvedText = new fabric.CurvedText('CurvedText', 
 
    { 
 
     left: 100,top: 20, 
 
     textAlign: 'center', 
 
     fill: '#0000FF',radius: 150, 
 
     fontSize: 20,spacing: 20 
 
    }); 
 
    canvas.add(CurvedText).renderAll(); 
 

 
    $('#save').click(function() { 
 
    \t var design = JSON.stringify(canvas.toJSON()); 
 
    canvas.clear(); 
 
    canvas.renderAll(); 
 
    canvas.loadFromJSON(design, function() { 
 
     console.log('loaded');  
 
     canvas.renderAll(); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.2/fabric.js"></script> 
 
<script src="//cdn.rawgit.com/EffEPi/fabric.curvedText/master/fabric.curvedText.js"></script> 
 
<canvas id="c" width="400" height="160"></canvas><br/> 
 
<button id="save">Save/Reload</button>

1.7.3バージョン:

$(function() 
 
{ 
 
    canvas = new fabric.Canvas('c'); 
 
    var CurvedText = new fabric.CurvedText('CurvedText', 
 
    { 
 
     left: 100,top: 20, 
 
     textAlign: 'center', 
 
     fill: '#0000FF',radius: 150, 
 
     fontSize: 20,spacing: 20 
 
    }); 
 
    canvas.add(CurvedText).renderAll(); 
 

 
    $('#save').click(function() { 
 
    \t var design = JSON.stringify(canvas.toJSON()); 
 
    canvas.clear(); 
 
    canvas.renderAll(); 
 
    canvas.loadFromJSON(design, function() { 
 
     console.log('loaded');  
 
     canvas.renderAll(); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.3/fabric.js"></script> 
 
<script src="//cdn.rawgit.com/EffEPi/fabric.curvedText/master/fabric.curvedText.js"></script> 
 
<canvas id="c" width="400" height="160"></canvas><br/> 
 
<button id="save">Save/Reload</button>

1.7.2。バージョンは正常に動作し、1.7.3。バージョンはありません。保存プロセスはうまくいくようですが、JSONをロードするときに何も起こらないようです。

"改善::loadFromJSONの#3586でより良いエラー経営管理論"

...責任があるかもしれない。への変更がいるようです(https://github.com/kangax/fabric.js/releases/tag/v1.7.3)1.7.3のリリースノートを見ると

何か案は?

追加

には、コンソール・エラーなしネットワークエラーはありません。前述のように、スクリプトは使用されているファブリックのバージョンを除いて同一です。私が話しているJSONは、ファブリック自体から生成されます。これにより、デザインを保存して読み込むことができます。保存/再ロードボタンをクリックするとJSONが生成され、JSONがリロードされます(テストとして)。 JSONcurvedTextのアイテムが含まれていると、読み込み機構が破損します。どのような方法でもメッセージは表示されません。

+0

コンソールのエラーはありますか? 1.7.2で廃止予定の警告がありますか?また、賢明ではありませんが、問題をもう少し明確にすることができますか? JSONの読み込みが停止したと言ったらどういう意味ですか?クロムウィンドウの[ネットワーク]タブに問題がありますか?\ AND入力した2つのコードサンプルは同じですか?もしそうなら、比較は時間がかかるので削除してください。私は違いがないことに気づきました..編集:両方の 'コードラン'は同じ動作をします。 – Pogrindis

+0

@Pogrindis編集を参照してください。 –

答えて

2

OK、最後にfabric.curvedText.jsのバグを追跡しました。さて、fabricjsのコードenlivenObjectsのコードが1.7.2から変更されました。 1.7.3まで。 curvedTextオブジェクトの読み込みを停止させます。これに

fabric.CurvedText.fromObject=function (object) 
{ 
    return new fabric.CurvedText(object.text, clone(object)); 
}; 

:1からfabric.CurvedTextでfromObjectコードを変更した場合

fabric.CurvedText.fromObject=function (object, callback) 
{ 
    var newObject = new fabric.CurvedText(object.text, clone(object)); 
    if(typeof callback !== "undefined") 
     callback(newObject, false); 
    else 
     return(newObject); 
}; 

次にロードは現在動作します。これが他の人に役立つことを願っています

+1

ありがとう!あなたは私の一日を救った! – dtx

関連する問題