我们可以克隆像 MS Word 这样的对象吗,ctrl + 鼠标单击 + 拖动
Can we clone objects like MS Word , ctrl + mouse click + drag
在我的 fabricjs 应用程序上,我在一个对象上单击 ctrl + 鼠标左键单击,然后克隆它,到目前为止一切顺利。
关键是我想像在MS WORD中一样进行克隆,即ctrl + click + drag。
以前有人做过类似的事情吗?
谢谢,这对我的项目非常重要。
我的职能是:
**here i make true the flag**
fabric.Canvas.prototype.__onMouseDown = function (e) {
//left click is pressed
lpressed = true;
}
**if the user prsees ctrl + left mouse + move , i create a new object**
$(document).mousemove(function(e){
console.log('mouse move');
if(e.ctrlKey && lpressed){
if(canvas.getActiveObject()){
var actObj = canvas.getActiveObject();
var toBack = true;
addCirlceTable(canvas.getActiveObject().left,canvas.getActiveObject().top,8,45,toBack);
canvas.renderAll();
//i select the original object which it comes on the foreground, over the new object
canvas.fire('object:selected', {target:actObj, e:e});
actObj.fire('selected',{e:e});
}
}
});
//here i disable the flag
canvas.on('mouse:up', function(o){
lpressed = false;
}
所以,代码的流程是这样的:
1. select一个对象
2. 调用一个我新建的函数
3.我把新对象放在背景上(在原来的下面)
4.我手动重新select原来的对象
5.我需要移动原来的对象!
第 5 步不起作用,我必须释放左键单击然后重新单击原始对象(尽管它是 selected),以便移动原始对象.
是的,你是对的,他们没问题,克隆过程如我所愿,ctrl + 鼠标拖动。
我只是更改了移动功能,而不是一般的 dom 事件 $(document).mousemove(function(e){})
我使用织物移动事件:canvas.on('object:moving',function(e){});
在我的 fabricjs 应用程序上,我在一个对象上单击 ctrl + 鼠标左键单击,然后克隆它,到目前为止一切顺利。 关键是我想像在MS WORD中一样进行克隆,即ctrl + click + drag。
以前有人做过类似的事情吗? 谢谢,这对我的项目非常重要。
我的职能是:
**here i make true the flag**
fabric.Canvas.prototype.__onMouseDown = function (e) {
//left click is pressed
lpressed = true;
}
**if the user prsees ctrl + left mouse + move , i create a new object**
$(document).mousemove(function(e){
console.log('mouse move');
if(e.ctrlKey && lpressed){
if(canvas.getActiveObject()){
var actObj = canvas.getActiveObject();
var toBack = true;
addCirlceTable(canvas.getActiveObject().left,canvas.getActiveObject().top,8,45,toBack);
canvas.renderAll();
//i select the original object which it comes on the foreground, over the new object
canvas.fire('object:selected', {target:actObj, e:e});
actObj.fire('selected',{e:e});
}
}
});
//here i disable the flag
canvas.on('mouse:up', function(o){
lpressed = false;
}
所以,代码的流程是这样的:
1. select一个对象
2. 调用一个我新建的函数
3.我把新对象放在背景上(在原来的下面)
4.我手动重新select原来的对象
5.我需要移动原来的对象!
第 5 步不起作用,我必须释放左键单击然后重新单击原始对象(尽管它是 selected),以便移动原始对象.
是的,你是对的,他们没问题,克隆过程如我所愿,ctrl + 鼠标拖动。
我只是更改了移动功能,而不是一般的 dom 事件 $(document).mousemove(function(e){})
我使用织物移动事件:canvas.on('object:moving',function(e){});