我有一个图8的动画在屏幕上移动,当在文本框中输入新信息时,我似乎无法弄清楚如何清除动画。
当用户在文本框中输入内容时,动画就会开始播放,但是我希望任何新输入都可以从头开始重置动画。
我认为这与仅将循环设置为20有关。
如何重置循环并根据新的用户输入重新启动动画?
/*Con le frecce direzionali, scorre di box*/
private void passwordFieldKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_DOWN)
hostnameTextField.requestFocus();
if(evt.getKeyCode() == KeyEvent.VK_UP)
usernameTextField.requestFocus();
}
/*Con le frecce direzionali, scorre di box*/
private void usernameTextFieldKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_DOWN)
passwordField.requestFocus();
}
这似乎无能为力。
function redraw() {
polyline.clearRect(0, 0, width, height);
}
我还使用框中的onkeyup调用了两个函数。
https://codepen.io/braydendevito/pen/EzJjgP
谢谢!
答案 0 :(得分:2)
问题在于,一旦按下按键,您就会调用 tick()和 redraw()-这意味着在这些函数中使用的所有全局变量将保留最后的值。 导致此行为的两个变量是 frame -应将其重置为0,将 points 数组重置为空数组。
<div align="center">
A= <input type="text" id="amp" onkeyup="reset();" size="4"></input>
A= <input type="text" id="freq" onkeyup="reset();" size="4"></input>
A= <input type="text" id="speed" onkeyup="reset();" size="4"></input>
</div>
function reset()
{
frame=0;
points=[];
tick();
redraw();
}