1

当我移动对象时。在“修改”事件中,我检查我是否没有将对象移出网格。如果我这样做了,那么我将对象返回到它的初始坐标。它返回正确。但是当我再次尝试移动它时。我拖不过去 看起来视觉坐标已更新。但是有些碰撞坐标没有。如何更新这个交互层坐标?

http://jsfiddle.net/4Ubjk/3/

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();
      }
    });
4

1 回答 1

1

阅读源代码后,尝试了下一个功能,它有所帮助。

e.target.setCoords();
于 2013-01-05T10:59:48.547 回答