函数不会更改值,动画会消失

时间:2014-11-02 10:10:16

标签: javascript html animation button

我使用脚本来动画在互联网上找到的钟摆。现在我想添加按钮来改变被宣布为全局的钟摆的任何参数。我通过HTML中的onclick尝试全局功能,但点击后动画消失了......



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>
&#13;
&#13;
&#13;

那么我应该改变什么来使这个按钮工作,我的意思是在这里改变欧米茄(钟摆会摆动多远?

1 个答案:

答案 0 :(得分:1)

您不能只覆盖pendulum对象。它在动画期间用于更改值。

简单的解决方法是更改​​欧米茄值

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

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

更多涉及的内容需要对代码进行大量重构。