gpt4 book ai didi

javascript - 我的函数没有返回

转载 作者:行者123 更新时间:2023-12-02 18:48:45 25 4
gpt4 key购买 nike

哎哟!当条件满足时,我的函数不会返回(退出)。

var arrowReady = false;
var arrowImage = new Image();
var deg = 0;
arrowImage.onload = function () {
arrowReady = true;
function moveArrow() {
setInterval(function() {
ctx1.save();
deg++;
ctx1.rotate(deg * Math.PI / 180);
// Here is ^ the amount of degrees it turns.
ctx1.clearRect(300, 200, 52, 310);
ctx1.drawImage(arrowImage, 300, 100, 42, 300);
ctx1.restore();
}, 100);

if (deg == 40) return;

}
}

根据我的理解,当 deg = 40 时,该函数应该停止。但是,事实并非如此。有什么建议吗?

最佳答案

这里发生了棘手的 JavaScript。 moveArrow 仅在文档​​加载时调用一次。返回与否不会停止您的间歇运行。

您需要保存对间隔的引用:

var interval = setInterval(...

然后在匿名 setInterval 函数中,当 deg ==40 时,您需要 clearInterval(interval) 来阻止它正在运行。

试试这个:

var arrowReady = false;
var arrowImage = new Image();
var deg = 0;
arrowImage.onload = function () {
arrowReady = true;
function moveArrow() {
var interval = setInterval(function() {
if (deg == 40) {
clearInterval(interval);
return;
}
ctx1.save();
deg++;
ctx1.rotate(deg * Math.PI / 180);
// Here is ^ the amount of degrees it turns.
ctx1.clearRect(300, 200, 52, 310);
ctx1.drawImage(arrowImage, 300, 100, 42, 300);
ctx1.restore();
}, 100);

}
}

关于javascript - 我的函数没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com