2015-05-12 4 views
0

Я пытаюсь сделать операцию копирования с помощью пасты Ctrl +с и Ctrl + v с fabricjs.FabricJs Ctrl C + Ctrl V

Мне удалось что-то сделать. Объект, который я выбираю и выполняю копирование, копируется, но если я снова нажимаю ctrl + v Элемент - это места внутри последнего. И если я выбираю элементы, они меняют положение.

Copy Paste действия:

if (map[17] && map[67]) { 
    event.preventDefault(); 
    if(canvas.getActiveGroup()){ 
     for(var i in canvas.getActiveGroup().objects){ 
      var object = fabric.util.object.clone(canvas.getActiveGroup().objects[i]); 
      object.set("top", object.top+5); 
      object.set("left", object.left+5); 
      copiedObjects[i] = object; 
     }      
     console.log(copiedObjects); 
    } 
    else if(canvas.getActiveObject()){ 
     var object = fabric.util.object.clone(canvas.getActiveObject()); 
     object.set("top", object.top+5); 
     object.set("left", object.left+5); 
     copiedObject = object; 
     copiedObjects = new Array(); 
     console.log(copiedObjects); 
    } 
}else if(map[17] && map[86]){ 
    event.preventDefault(); 
    console.log(copiedObjects); 
    if(copiedObjects.length > 0){ 
     for(var i in copiedObjects){ 
      canvas.add(copiedObjects[i]); 
     }      
    } 
    else if(copiedObject){ 
     canvas.add(copiedObject); 
    } 
    canvas.deactivateAll().renderAll(); 
} 

Я сделал JsFiddle

Перейди в JsFiddle и выберите этот объект. Нажмите Ctrl +с, а затем Ctrl + v дважды и затем выберите два объекта. Тогда вы поймете, в чем моя проблема.

Спасибо

ответ

1

Мое решение этой проблемы я должен создать новый объект из скопированного объекта и добавить его в canvas

а не делать

canvas.add(copiedObject); 

Я делаю это

var object = fabric.util.object.clone(copiedObject); 
object.set("top", object.top+5); 
object.set("left", object.left+5); 
copiedObject1 = object; 
canvas.add(copiedObject1); 

и вот мой jsfiddle: - https://jsfiddle.net/n5a1wkfb/2/

+0

Отлично работает :) ... спасибо –

+0

Добро пожаловать: D –

Смежные вопросы