2014-04-02 2 views
1

나는 이벤트 리스너로 작동하는 while() 루프가있는 프로젝트에서 작업하고 있습니다. OnEvent 나는 HTML 비디오에서 .currentTime을 재설정해야합니다.JS - 동작 감지 EventTrigger 계속적으로 트리거링 기능

문제는 현재 활성화 된 시간에 비디오를 설정하기로되어있는 모션 센서에 의해 이벤트가 트리거된다는 것입니다. 모션 센서는 항상 움직임을 감지하여 항상 경고하고 있기 때문에 내 비디오도이 루프에서 멈추며 전체 섹션을 재생하는 대신 이벤트 리스너가 트리거되면 계속 재설정됩니다. 나는이 문제를 해결할 방법을 찾지 못하고있다.

이 시점에서 코드가 상당히 길기 때문에 간단히 이벤트 수신기와 트리거 기능을 포함 할 예정입니다.

감사합니다.

 function processWV() { 
      var startTime = +new Date(), 
       changed = false, 
       f; 

      context.drawImage(video, 0, 0, canvas.width, canvas.height); 
      f = detectf(); 



      if (experimentType === MASK_EXPERIMENT) { 
       drawMasks(f); 
      } else { 
       highlightf(f); 


      } 


      //console.log(+new Date() - startTime); 

      setTimeout(processWV, 25); 
     } 



    function listening(f) { 


     if (f == false) { 
      section = 2; 
      updateVideo(); 
      return false; 
     } else { 
      section = 1; 
     } 


     for (var i = 0; i < f.length; i++) { 
      var f = f[i]; 
      context.fillRect(f.x, f.y, f.width, f.height); 
     } 

    } 

    function updateVideo(){ 
       console.log('update'); 
       $("#video")[0].currentTime = 14; 
    } 
+0

"연속 실행 루프"란 무엇을 의미합니까? 당신은 (사실) 또는 그 자리에 무엇인가 가지고 있습니까? – Wheeyls

+0

또한 for 루프의'''var f = f [i];'''는 f의 원래 값을 덮어 씁니다. 자바 스크립트의 문은 새로운 범위를 만들지 않습니다! – Wheeyls

+0

값을 덮어 써야합니다. 첫 번째 요점은 그렇다. 그것은 센서를 듣고 있습니다. – unfollow

답변

1

당신이 그것을 섹션 2

이 반복 않다면의 시작을 종료하도록 트리거 기능을 추가 PARAMS을 줄 필요가있다, 그것은 아마 계속해서 또 다시 같은 자리에에 호출되는 것. 무엇을해야할까요 :

if(section==2 && video.currentTime < whatever_section_1_end_time_is){ 
set to section 2; 
} 

희망이 맞는 것입니다.