Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Kineticjs和hammerjs:在拖动阶段时正确更新鼠标位置_Javascript_Kineticjs_Hammer.js - Fatal编程技术网

Javascript Kineticjs和hammerjs:在拖动阶段时正确更新鼠标位置

Javascript Kineticjs和hammerjs:在拖动阶段时正确更新鼠标位置,javascript,kineticjs,hammer.js,Javascript,Kineticjs,Hammer.js,所以,我有一个可拖动的舞台,我在其中添加了新的形状(双击/点击)。现在我的问题是,当我拖动舞台并在其后创建一些新对象时,我的对象在舞台的错误位置创建。以下是我迄今为止的代码(摘录): 在这里添加更多行之前,我制作了这个简化的JSFIDLE来说明问题所在。只需在舞台上双击(/点击)。然后拖动舞台。然后再次双击=>错误位置: 如果有人能帮我,那就太好了。我认为我的问题在于对XPO和YPO的定义是错误的,但我对如何做没有更好的想法 致以最良好的祝愿, 多米尼克那么,现在开始工作了。我所要做的就是在拖动

所以,我有一个可拖动的舞台,我在其中添加了新的形状(双击/点击)。现在我的问题是,当我拖动舞台并在其后创建一些新对象时,我的对象在舞台的错误位置创建。以下是我迄今为止的代码(摘录):

在这里添加更多行之前,我制作了这个简化的JSFIDLE来说明问题所在。只需在舞台上双击(/点击)。然后拖动舞台。然后再次双击=>错误位置:

如果有人能帮我,那就太好了。我认为我的问题在于对XPO和YPO的定义是错误的,但我对如何做没有更好的想法

致以最良好的祝愿,
多米尼克

那么,现在开始工作了。我所要做的就是在拖动并将它们添加到我的xPos/YPO之后,从舞台上获取X和Y坐标,如下所示:

$('#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);
});
您可以在此处看到一个工作演示:

$('#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);
});