我想生成一个随机数,将其在条件语句(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();
})();

10-06 12:38