当我移动物体时。在“修改”的事件中,我检查我是否没有将对象移动到网格之外。如果我这样做,那么我将对象返回到其初始坐标。 它返回正确。但是当我试图再次移动它时。我无法拖动它。 看起来像是更新了视觉坐标。但是一些碰撞坐标没有。如何更新这个交互层坐标?
canvas.on({
'object:moving': function(e) {
e.target.opacity = 0.5;
canvas.renderAll();
},
'object:modified': function(e) {
e.target.opacity = 1;
//e.target.left = 10;
var nx = Math.floor((e.target.left - offset)/60);
var ny = Math.floor((e.target.top - offset)/60);
if(nx > 4 || nx < 0 || ny > 4 || ny < 0)
{
nx = e.target.ix;
ny = e.target.iy;
}
e.target.ix = nx;
e.target.iy = ny;
//e.target.set('top', offset + 30+e.target.iy*60);
//e.target.set('left', offset + 30+e.target.ix*60);
e.target.set('top', offset + 30+ny*60);
e.target.set('left', offset + 30+nx*60);
canvas.renderAll();
}
});
答案 0 :(得分:1)
阅读源代码后,尝试了下一个功能并且有所帮助。
e.target.setCoords();