我想生成一个随机数,我在条件语句(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();
…
答案 0 :(得分:0)
您可以使用单独的间隔:
(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();
})();