我在这一层有一个可拖动的图层和一个大的透明背景。我想在用户点击的位置上准确添加文本。当我没有拖动图层时,一切都还可以,但是当我拖动它时,文本会添加到我不想要的地方。因为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
});
答案 0 :(得分:1)
当使用KineticJS时,你想避免使用event.x和event.y,因为KineticJS已经有了获取位置的方法。
var position = stage.getUserPosition(); // this returns an object like {x: 100, y: 140}
此外,检查您要将文本添加到哪个图层。另外,请显示一些代码。
答案 1 :(得分:0)
你需要绝对设置元素的位置。使用此:
plot.setAbsolutePosition(stage.getUserPosition());