我想生成一个随机数,将其在条件语句(If...else
)中用作变量。
条件语句在其中出现的function PositionLoop()
具有赋值requestAnimationFrame
。但是,我希望不要在每个帧中重新生成随机数。这太频繁太快了。例如,我希望数字每3秒更改一次。另一个问题是条件语句包含一个变量(Font
),我在function PositionLoop()
内代码的另一行再次使用该变量…
我已经尝试了不同的方法–首先,我为随机数创建了一个函数,并在另一个函数function PositionLoop()
(Accessing variables from other functions without using global variables)中调用了变量,然后尝试了全局变量–,但它不起作用。有人可以帮我吗? - 非常感谢你!
这是我的代码结构:
…
function positionLoop() {
requestAnimationFrame(positionLoop);
…
var Zufallszahl1 = random(0,30);
var Font;
if (Zufallszahl1 = 6) {
Font = …;
} else if (Zufallszahl1 = 8) {
Font = …;
} else {
Font = …;
};
if (parameter < x) {
Schriftart = …;
} else if (parameter > x) {
Schriftart = Font;
} else {
Schriftart = …;
};
var Gestalt = selectAll('.class1');
for (var i = 0; i < Gestalt.length; i++) {
Gestalt[i].style('font-family', Schriftart);
Gestalt[i].style(…);
Gestalt[i].style(…);
…
};
…
}positionLoop();
…
最佳答案
您可以为此使用一个单独的间隔:
(function () {
var Zufallszahl1;
function changeZufallszahl1() {
Zufallszahl1 = random(0,30);
if (Zufallszahl1 = 6) {
Font = …;
} else if (Zufallszahl1 = 8) {
…
} else {
…
}
…
}
changeZufallszahl1();
// Repeat with whatever delay you want between changes
setInterval(changeZufallszahl1, 1000);
// Keep your animation loop separate:
function positionLoop() {
requestAnimationFrame(positionLoop);
…
}
positionLoop();
})();