2014-11-02 51 views
-1

我正在使用腳本來在互聯網上找到擺錘的動畫。現在我想添加按鈕來更改聲明爲全局的鐘擺的任何參數。我用的onclick在HTML試圖全局函數,但點擊disapeared動畫後...函數不會更改值並且動畫消失

var pendulum = {mass: 100, length:500, theta: (Math.PI/2) - 0.05, omega: 0, alpha:0, J:0}; 
 

 
/* My changes... */ 
 
function changeBig(){ 
 
    pendulum = {mass: 100, length:100, theta: (Math.PI/2) - 0.05, omega: 10, alpha:0, J:0}; 
 
} 
 

 
function changeSmall(){ 
 
    pendulum = {mass: 100, length:100, theta: (Math.PI/2) - 0.05, omega: 1, alpha:0, J:0}; 
 
} 
 
/* My changes end */
canvas { 
 
    display:block; 
 
    margin:0px auto; 
 
    height:600px; 
 
    width:400px; 
 
    border:none; 
 
}
<canvas id="canvas" height="600" width="400"></canvas> 
 
<button onClick="changeSmall()">Small</button> 
 
<button onclick="changeBig()">Huge </button>

所以我應該怎麼改變,使這個按鈕的工作,我的意思是改變歐米茄(如何遠鐘擺會擺?

+0

如果不知道自己找到的鐘擺代碼,我們無法回答。瘋狂的猜測:你可能應該改變'鐘擺'的'omega'屬性而不是覆蓋它。 – 2014-11-02 10:41:55

+0

http://jsfiddle.net/bkanber/uvYw5/light/就是這樣。 我不想chage屬性,我想與「用戶」,我做擺pee互動。我計劃製作4個不同的歐米茄按鈕。 – Crawly 2014-11-02 10:55:06

回答

1

你不能只是覆蓋pendulum對象,它是動畫中使用更改值。

最簡單的解決方法是改變歐米伽值s

function changeBig(){ 
    pendulum.omega = 10; 
} 

function changeSmall(){ 
    pendulum.omega = 1; 
} 

所涉及的一切都需要大量的代碼重構。

+0

這一個工程。感謝您的幫助 :) – Crawly 2014-11-02 12:07:02