2017-09-13 12 views
1

가변 조건 문 (If...else)에서 변수로 사용하는 난수를 생성하고 싶습니다. 조건문이 수행되는 function PositionLoop()에는 requestAnimationFrame이라는 지정이 있습니다. 그러나 각 프레임에서 임의의 숫자가 다시 생성되지 않도록하고 싶습니다. 이것은 너무 자주 그리고 너무 빠릅니다. 3 초마다 숫자가 바뀌 길 바랍니다. 처음에는 임의의 숫자에 대한 함수를 작성 - 또 다른 문제는 조건문이 이미 다른 일을 시도 내가function PositionLoop() 내부 코드 의 다른 행에 다시 사용하고 변수 (Font), ...다른 frameRate의 함수에서 임의의 숫자

이 포함되어 있다는 것입니다 변수 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

_ "그러나, 나는 각 다시 발생하지 않도록 난수를 원하는

내 코드 구조입니다 너무 자주 그리고 너무 빠릅니다. "_ 글쎄, 얼마나 자주 업데이트하고 싶습니까? –

+1

* "if 루프"* : 이것은 무엇입니까? – trincot

+0

두 가지 이전 의견에 모두 동의합니다. 약간의 도움을주기 위해, 'positionLoop'은 간격으로 특별한 이벤트를 트리거하는 데 사용할 수있는 highResTimeStamp (performance.now와 유사)를 수신합니다. – Kaiido

답변

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(); 
})(); 
+0

답변 해 주셔서 감사합니다. 나는 정말로 sth를 언급하는 것을 잊었다. impotant (미안) : 조건문 (if ... else)에 함수 (PositionLoop) 내의 코드에서 다른 행에서 다시 사용하고있는 변수 (Font)가 포함되어 있습니다 ... –

+0

그 변수를' Zufallszahl1', 그래서 IIFE 범위 내에서. – trincot

+0

좋은 일! 고마워요 !!! :) –