2013-01-05 52 views
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(); 
     } 
    }); 

回答

1

閱讀源代碼之後,嘗試下一個功能,它幫助。

e.target.setCoords();