0

ドラッグ可能なレイヤーと、このレイヤーに大きな透明な背景があります。ユーザーがクリックした位置に正確にテキストを追加したい。レイヤーをドラッグしなかった場合はすべて問題ありませんが、ドラッグするとテキストが不要な場所に追加されます。event.xとevent.yは、図形のクリック領域のxとyではないためです。座標を変換する必要があります。しかし、どうすれば変換ベクトルを取得できるのかわかりません。

    plot = {};
    plot.stage = new Kinetic.Stage({width: 500, height:500,
      container: 'abc',
      'draggable': true});
    plot.layer = new Kinetic.Layer();
    plot.stage.add(plot.layer);
    plot.background = new Kinetic.Rect({
          x: -1000,
          y: -1000,
          width: 2000,
          height: 2000,
          fill: "#000000",
          opacity: 0.05,
          type: 'blank'
    });
    plot.layer.add(plot.background);

    plot.background.on('click', function(e) {
       e.x;
       e.y;
       // e.x and e.y are not true after dragging stage
    });
4

2 に答える 2

1

KineticJSを使用する場合、KineticJSにはすでに位置を取得するためのメソッドがあるため、event.xとevent.yは避けたいと思います。

   var position = stage.getUserPosition();  // this returns an object like {x: 100, y: 140}

また、テキストをどこのレイヤーに追加するかを調べます。また、いくつかのコードを表示してください。

于 2013-02-28T16:12:05.333 に答える
0

要素の位置を絶対に設定する必要があります。これを使って:

plot.setAbsolutePosition(stage.getUserPosition());

于 2013-03-05T02:07:41.210 に答える