Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 如何在可拖动层顶部单击时获得准确的指针位置?_Javascript_Html_Canvas_Kineticjs - Fatal编程技术网

Javascript 如何在可拖动层顶部单击时获得准确的指针位置?

Javascript 如何在可拖动层顶部单击时获得准确的指针位置?,javascript,html,canvas,kineticjs,Javascript,Html,Canvas,Kineticjs,我只是在学习Kinetic.js,我真的很享受使用HTML5元素是多么容易 我有一个比“舞台”(用动力学的说法)更大的层,但是可以拖动。拖动功能似乎以两种不同的方式干扰单击处理程序:一些单击不注册;而在这样做的情况下,只有当图层处于其原始位置时,位置才是准确的 显示我遇到的问题。在我的实际代码中,底层实际上是一个图像。 任何似乎未注册的点击都是由于可拖动事件触发而导致的,该事件会覆盖点击事件。!getX()和getY()正是我想要的,但在文档中找不到。我可能会实现移动和编辑的“模式”,所以我可能

我只是在学习Kinetic.js,我真的很享受使用HTML5
元素是多么容易

我有一个比“舞台”(用动力学的说法)更大的层,但是可以拖动。拖动功能似乎以两种不同的方式干扰单击处理程序:一些单击不注册;而在这样做的情况下,只有当图层处于其原始位置时,位置才是准确的

显示我遇到的问题。在我的实际代码中,底层实际上是一个图像。


任何似乎未注册的点击都是由于可拖动事件触发而导致的,该事件会覆盖点击事件。

!getX()和getY()正是我想要的,但在文档中找不到。我可能会实现移动和编辑的“模式”,所以我可能不必担心事件处理程序。非常感谢。我不太清楚为什么动能会使获取/修改x/y坐标变得复杂,但确实如此。我之所以知道这一点,是因为我今天花了一些时间在Kinetic上加速编写了一个突破克隆D
layer.on ('click', function(e) {
    console.log(e);
    var mousePos = stage.getMousePosition(); // mouse position relative to stage
    var xclick = mousePos.x;
    var yclick = mousePos.y;
    var circle = new Kinetic.Circle({
        x: xclick - layer.getX(), // since position is relative to stage, adjust by layer X
        y: yclick - layer.getY(), // same as above
        radius: 25,
        fill: 'red',
        opacity: 0.5
    });
    layer.add(circle);
    stage.draw();       // redraw the stage immediately
});