2017-06-08 32 views
1

現時点では、オブジェクトのグループを選択している間、ファブリックjs.Butにオブジェクトをコピー&ペーストするためのコードを追加しました。 fabric.jsフレームワークを使用してキャンバス上のオブジェクトのグループに対してコピー/ペースト機能を実装する方法はありますか?fabric.jsのコピー/ペースト機能

はここにペースト

pasteSelectedObjs: function() { 
    cur_canvas = canvasObjArr[this.page]; 
    if (clipboard.length < 1) { 
     return; 
    } 
    if (cur_canvas.getActiveObject()) { 
     clipboard.set('active', true); 
     cur_canvas.add(clipboard); 
     cur_canvas.setActiveObject(clipboard); 
    } 
    clipboard = []; 
} 

答えて

1
ここ

私は適切な解決策を得たために私のコードです。

if (cur_canvas.getActiveGroup()) { 
    cur_canvas.discardActiveGroup(); 
    clipboard.forEachObject(function(obj) { 
     obj.set('active', true); 
     cur_canvas.add(obj); 
    }); 
    cur_canvas.setActiveGroup(clipboard).renderAll(); 
} 

ありがとうございます。

3

ここで私はそれをやりました。それがオブジェクトかグループかどうかをチェックします。それはパスグループではありません。これは複製されていることに満足していませんでした。

/** 
    * Will copy an object on the canvas 
    */ 
    var copyObject; 

    copy(){ 
     let o = canvas.getActiveObject(); 
     let t = o.get('type'); 

     if (o && t !== 'path-group'){ 
      let clone = o.clone(); 
      if (clone) { 
       clone.set({ 
        top: clone.top + 50, 
        left: clone.left + 50 
       }); 
      } 

      copyObject = clone; 
     } 
    } 

    /** 
    * Will clone an object to the canvas 
    */ 
    paste(){ 
     if (copyObject){ 
      canvas.add(copyObject); 
      canvas.deactivateAll().renderAll(); 
     } 
    } 
+0

これは完璧な@Paulで動作しますが、私の問題は 'オブジェクトのグループ 'をコピー/貼り付けたいのですが、ここでは問題です。しかし私の下のコードを見てください。それは働いている。 –

関連する問題