2014-11-02 16 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

相关问题