所以,我有一个可拖动的舞台,我添加了新的形状(双击/ -tap)。现在我的问题是,当我拖动舞台并在其后创建一些新对象时,我的对象在舞台上的错误位置创建。这是我的代码 - 迄今为止(摘录):
$('#toolbox_container').hammer().on('doubletap', function(e) {
//console.log('x:' + e.gesture.center.pageX + ' y: ' + e.gesture.center.pageY);
var xPos = e.gesture.center.pageX - this.offsetLeft;
var yPos = e.gesture.center.pageY - this.offsetTop;
// call addnode with position of tap/mouse
addNode(xPos, yPos);
});
在这里添加更多行之前,我做了这个简化的jsfiddle以显示问题所在。只需在舞台上双击(/点击)即可。然后拖动舞台。然后再次,doubleclick =>错误的立场:http://jsfiddle.net/4vfBY/7/
如果有人可以帮助我,那就太好了。我认为我的问题在于定义xPos和yPos是错误的,但我对如何做到这一点没有更好的想法。
祝你好运, 多米尼克
答案 0 :(得分:1)
所以,现在就开始工作吧。我所要做的就是在拖动后从舞台上获取X和Y坐标,然后将它们添加到我的xPos / yPos中,如下所示:
$('#toolbox_container').hammer().on('doubletap', function (e) {
stageX = stage.getX();
stageY = stage.getY();
var xPos = e.gesture.center.pageX - this.offsetLeft - stageX; //apply stageX
var yPos = e.gesture.center.pageY - this.offsetTop - stageY; //apply stageY
// call addnode with position of tap/mouse
addNode(xPos, yPos);
});
您可以在此处查看有效的演示:http://jsfiddle.net/s9PAD/1/