2013-07-10 70 views
0

因此,我有一個可拖動的舞臺,並向其中添加了新的形狀(doubleclick/-tap)。現在我的問題是,當我拖動舞臺並在它後面創建一些新對象時,我的對象被創建在舞臺上的錯誤位置。這裏是我的代碼,那麼遠(節選):Kineticjs和hammerjs:在拖動舞臺時正確更新鼠標位置

$('#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錯誤,但我沒有更好的方法來解決這個問題。

最好的問候, 多米尼克

回答

1

因此,得到了現在的工作。所有我不得不這樣做在拖動後漸漸從舞臺的X和Y座標,並將它們添加ZO我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/

相關問題