当我使用 setInterval 时遇到了一个问题,执行代码的顺序让我感到惊讶:
var attack1 = setInterval(function(){
weapon1.style.visibility = "visable";
weapon1.animate(attack1Animation, attackTiming);
weapon1.style.visibility = "hidden";
}, 10000/unit1.attack_speed);
weapon1.style.visibility = "隐藏"; 执行速度比 weapon1.animate(attack1Animation, attackTiming);
我知道我们在 JS 中有 LIFO 和 FIFO。异步 JS 和函数(我不确定是否所有类型的函数)在其他代码之后执行。所以我尝试了这样的事情:
function notVisable() {
weapon1.style.visibility = "hidden";
}
var attack1 = setInterval(function(){
weapon1.style.visibility = "visable";
weapon1.animate(attack1Animation, attackTiming);
notVisable();
}, 10000/unit1.attack_speed);
没有那两行,一切仍然有效:
动画作品,所以这不是动画的错。
可能我会设法修复它,但我想了解它是如何工作的:D