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 に答える