2014-04-01 67 views
0

我是新來Paper.js可能因此這個基本的問題,但我想在下面:得到鼠標移動的全局變量和更新paper.js onFrame事件

var xpos; 
var ypos; 

function onMouseMove(event) { 

    xpos = event.point.x; 
    ypos = event.point.y; 

} 

獲得當前mouseposition並保存作爲變量xposypos

function onFrame(event) { 

    path.segments[1].point.x = path.segments[1].point.x+xpos/10; 
    path.segments[1].point.y = path.segments[1].point.y+ypos/10; 

} 

,然後用它們來更新onFrame動畫。但它不起作用,我如何使用新值更新動畫?

在此先感謝。

回答

1

看起來你的代碼正在增加每幀的位置path.segments[1]。我相信你想要的是減去每幀的段和鼠標位置之間的差異的一部分。

試試這個:

var path = new Path.Line((0,0), view.center); 
path.strokeColor = "black"; 
var pos = new Point(0, 0); 
function onMouseMove(event) { 
    pos = event.point; 
} 
function onFrame(event) { 
    path.segments[1].point += (pos - path.segments[1].point)/10; 
} 
+0

謝謝你,這的確是我在尋找的東西。由於我通常使用Raphael.js,所以它有點難以重新思考。但是,我可能會很厚顏無恥,而且我可以如何在路徑中間的另一個貝塞爾點上存儲相同的效果。雖然開始點和結束點是固定的,並且bezierpoint與onMouseMove一起使用? – supersize

+0

好吧,自己解決,你的答案是自我解釋! – supersize