具有不同frameRate的函数中的随机数

时间:2017-09-13 14:23:50

标签: javascript variables random requestanimationframe

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

…

1 个答案:

答案 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();
})();