2013-02-28 67 views
0

我在這一層有一個可拖動的圖層和一個大的透明背景。我想在用戶點擊的位置準確添加文本。當我沒有拖動圖層時,一切正常,但是當我拖動它時,文本將添加到我不想要的地方。因爲event.x和event.y不是點擊區域的形狀的x和y。座標必須轉換。但我不知道如何獲得轉換矢量。如何獲取點擊形狀的位置(KineticJS)

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 
    }); 
+0

這是可能的,但不知道你做了什麼。代碼plz – allenhwkim 2013-02-28 14:55:59

回答

1

當使用KineticJS時,您希望避免event.x和event.y,因爲KineticJS已經有獲取位置的方法。

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

另外,請檢查您將文本添加到哪個圖層。另外,請顯示一些代碼。

0

你需要絕對地設置元素的位置。使用這個:

plot.setAbsolutePosition(stage.getUserPosition());