1
嘗試點擊面板上的大按鈕之一,移動你的鼠標在y軸上。按鈕開始旋轉,因爲他們應該。現在,留下你的鼠標並再次點擊它們:爲什麼他們堅持要回到原來的位置?!
下面是與按鈕旋轉相關的代碼片段。請注意,在循環中執行的代碼每30ms調用一次。
// method
Button.prototype.Rotate = function(yDrag){
this.rotation = - (yDrag - this.rotationYClick)/80
}
// draw loop
function drawLoop() {
if (buttons[n].roating == true && mousePressed == true)
buttons[n].Rotate(mousePosition_y)
else
buttons[n].roating = false
} // end draw loop
// fired ONLY ONCE when mouse is clicked
function mouseDown() {
buttons[n].roating = true
buttons[n].rotationYClick = mousePosition_y
}
我故意避免發佈大部分代碼,因爲我確定問題在於這些行。
代碼解釋:當你點擊一個按鈕時,鼠標的位置存儲在類Button
的變量rotationYClick
中。拖動鼠標時,鼠標位置會不斷與存儲的值進行比較:當前鼠標位置與單擊位置的距離將決定按鈕的旋轉量。問題是,當你再次點擊它時,旋轉被設置回零。怎麼解決?!
Here's我的失敗嘗試的一個改變方法
// method
Button.prototype.Rotate = function(yDrag){
this.rotation += - (yDrag - this.rotationYClick)/80
}
非常感謝!
我已經試過了已經,但是當我做它開始crazely快速旋轉!讓我也上傳這個嘗試,以便你可以看到... 2秒鐘。 – Saturnix
這裏,現在嘗試移動他們:http://pulsewave.net/player/try.html – Saturnix
也:'roating'應該'旋轉'...只是說:) – Mutahhir