0

所以,我有一个可拖动的舞台,我向它添加了新的形状(双击/-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 以显示问题所在。只需在舞台上双击 (/tap)。然后拖动舞台。然后再次双击=>错误的位置:http: //jsfiddle.net/4vfBY/7/

如果有人可以在这里帮助我,那就太好了。我认为我的问题在于定义 xPos 和 yPos 错误,但我对如何做到这一点没有更好的想法。

最好的问候, 多米尼克

4

1 回答 1

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/

于 2013-07-10T12:31:12.780 回答