2017-06-04 85 views
0

我目前正在使用threejs和​​方法。我試着通過按住一個按鈕將相機旋轉到右側。我的問題在於,通過釋放按鈕,旋轉不會停止,每當我再次按下按鈕時,結束都會加速。如何用cancelAnimationFrame停止旋轉?

HTML:

<button id="right" onmousedown="rotateRight()" onmouseup="rotatestopRight()">Right</button> 

的JavaScript:

function rotateRight(){ 
    mainPivot.add(camera); 
    mainPivot.rotation.y+=Math.PI/180; 
    requestAnimationFrame(rotateRight); 
} 

function rotatestopRight(){ 
    cancelAnimationFrame(rotateRight); 
} 

我試圖通過使上發佈,其工作mainPivot.rotation.y-=Math.PI/180;解決這個問題,但它不是最好的解決辦法,因爲onmouseup事件很容易被繞過。任何想法如何解決?

回答

2

錯誤地使用它。​​返回您在撥打cancelAnimationFrame時使用的ID。

var id = requestAnimationFrame(); 

... 

cancelAnimationFrame(id); 
+0

謝謝!這有幫助! – PLAYCUBE