HTML5/Javascript -为什么我的动画在第一次开始时跳跃
HTML5/Javascript - Why does my animation jump when it first starts
基本上,我所做的就是制作一个简单的动画,当按下输入键时,矩形沿着x轴移动。这工作得很好,但问题是,当你按下回车键时,矩形似乎向前跳了大约10px左右。不知道是什么原因。
//event listener
window.addEventListener("keydown", onKeyDown, false);
window.addEventListener("keyup", onKeyUp, false);
function onKeyDown(event){
var keyCode = event.keyCode;
switch(keyCode){
case 13: //enter
key = true;
break;
}
}
function onKeyUp(event){
var keyCode = event.keyCode;
switch(keyCode){
case 13: //enter
key = false;
break;
}
}
//neccessary variables
var tick = 0;
var key = false;
//main animation function
function drawStuff(){
window.requestAnimationFrame(drawStuff);
var canvas = document.getElementById("myCanvas");
var c = canvas.getContext("2d");
if(key == true){
c.clearRect(0,0,500,500);
c.fillStyle = "blue";
c.fillRect(tick,0,100,100);
}
else{
}
tick++;
}
window.requestAnimationFrame(drawStuff);
任何帮助都是感激的!
这是因为你的requestAnimationFrame总是在运行(这是好的)。你的tick每次被调用时都会被递增。如果你等了很长时间才按回车键,你会发现它从更靠右的地方开始。
我的建议是将tick++
移动到if(key == true)
部分。
相关文章:
- jQueryAJAX函数被多次调用,但数据只在第一次调用时被提取
- 第一次按键时不会触发
- Cordova SQLite插件仅在第一次调用时有效
- D3-初始化后第一次转换时出现问题
- 为什么onchange事件没有在第一次更改时启动
- 在第一次可观测发射之后的第二次可观测的第一次发射时发射
- JQuerywrap()函数只在第一次循环时正确地将链接包装在图像周围
- 仅在第一次模糊时更新
- 我必须在sqlitedb的第一次填充时创建所有表吗
- JavaScript 计时器在第一次按键时启动
- jQuery:单击Ajax返回数据,但在第一次调用时显示在警报中
- 画布到数据URL在第一次尝试时不会返回整个URL
- JQuery 淡出功能在第一次尝试时未发生
- 为什么第一次按键时没有触发“键下”/“键”
- 使用 jQuery(view) 创建的 cookie 在第一次尝试时无法在 php(controller) 中访问
- JS在第一次访问时重定向到启动页面
- jsPDF 在第一次保存时工作,在第二次保存时不更新
- 第二次单击(而不是第一次)时的 ng 表更改页面操作
- Cookie 不会在第一次请求时发送
- HTML5/Javascript -为什么我的动画在第一次开始时跳跃