2014-05-21 5 views
0

스크립트를 수정하고 onclick 버튼을 사용하여 setInterval을 재설정하려고합니다. 내가하고 싶은 무엇 는 간격 명확하고 처음부터 시작 (상태 1),하지만 난 방법을 알고하는 문제가 ..onclick 버튼을 사용하여 setInterval 재설정

 var face = 0; 
     var t = 100; 
     var status = 0; 
     var tInt = 100; 

     (function() { 
      var element = document.getElementById("header"); 
      element.style.top = (window.innerHeight/2 - element.clientHeight/2) + "px"; 

      intro.play(); 

      var analysis = setInterval(function() { 
        if (status > 0) { 
        t = face ? t + tInt : 0; 

        var element = document.getElementById("header"); 

        if (status == 1) { 
         element.innerHTML = '<p class="spectrum title">MONTREZ VOTRE VISAGE</p>'; 
         element.style.top = (window.innerHeight/2 - element.clientHeight/2) + "px"; 
         intro.stop(); 
         scan.stop(); 
         wait.play(); 
         status = 2; 
        } else if (status == 2 && t > 0 && t < 5000) { 
         element.innerHTML = '<p class="spectrum">Analyse en cours</p><p class="spectrum">PATIENTEZ...</p>'; 
         element.style.top = (window.innerHeight - element.clientHeight - 48) + "px"; 
         wait.stop(); 
         scan.play(); 
         status = 3; 
        } else if (status == 3 && t >= 5000) { 
         element.innerHTML = '<p class="perdu">DÉSOLÉ</p><p class="perdu title">Votre visage n\'est pas conforme!</p>'; 
         element.style.top = (window.innerHeight - element.clientHeight - 48) + "px"; 
         scan.stop(); 
         theme.play(); 
         status = 4; 
         clearInterval(analysis); 
        } else if (status == 3 && t == 0) { 
         status = 1; 
        } 
       } 
      }, tInt); 
+0

이미 간격을 지우고있는 것처럼 보입니다 - 정확히 무엇이 문제입니까? –

+0

상태가 3이고 5000ms 후에 간격이 지워집니다. 내가 원하는 것은 다시 시작하는 것입니다. 상태 1부터 시작하는 버튼 – KevoMercure

답변

1

당신은 그냥 버튼에 클릭 이벤트를 추가 할 수 및 재설정 클릭 이벤트

HTML

<button id="btnReset" onclick="resetValue();">Reset</button> 

내부 작업 및 t 값은 자바 스크립트

function resetValue() { 
    action = 1; 
    t = 0; 
    // stop started items 
    intro.stop(); 
    wait.stop(); 
    scan.stop(); 
    theme.stop(); 
    // clear elements 
    var element = document.getElementById("header"); 
    if (element) { 
     element.innerHTML = ''; 
     element.style.top = (window.innerHeight/2 - element.clientHeight/2) + "px"; 
    } 
    // restart intro 
    intro.play(); 
}; 
이 추가 기능을 추가

은/정지 버튼을 다시 시작/이것을 나타내는 jsfiddle http://jsfiddle.net/Icepickle/GaQEp/, 일부 mokked 기능을 추가 간격 루프가 연속하는 동안

이 시작에 재설정한다. 부분적으로 스크립트를 다시 작성 했습니까?

+0

제 문제는 일종의 간격의 일부만 다시 시작되지만 루프가 작동하지 않는 것입니다. – KevoMercure

+0

요소 및 가능한 "재생 중"항목을 재설정하기 위해 내 대답을 업데이트했습니다. – Icepickle

+0

이 모든 것에 감사드립니다. 삭제는 괜찮지 만 슬프게도 다시 시작하지 않습니다. 나는 나를 위해 너무 복잡한 것을하고 싶다. ... 내가 처음에하고 싶었던 것은 다시 시작하기 위해 스캔 프레임과 메시지를 시작하는 것이다. 이것은 코드를 보여주는 jsfiddle입니다 : http://jsfiddle.net/KevoMercure/qkFrD/14/ 나는 또한 당신의 기능을 넣었습니다. – KevoMercure