2013-07-22 6 views
0

MouseEvent.ROLL_OVER 리스너에서 500 밀리 초 후에 SetInterval()을 사용하여 팝업 창을 트리거하는 일련의 단추가 있습니다.타이머가 완료되기 전에 SetInterval() 취소

그러나 500 밀리 초가 끝나기 전에 사용자가 버튼을 떼면 SetInterval() 타이머를 취소하고 싶습니다. 그렇지 않으면 타이머가 계속해서 잘못된 시간에 팝업을 표시합니다.

SetInterval() 타이머를 취소하려면 어떻게합니까? 다음과 같이

롤오버 및 롤아웃 기능에 대한 나의 기본 코드는 다음과 같습니다

function btn_over(event:MouseEvent) { 
     var timer = setInterval (function() { 

      hover_bubble.x = itemX + itemW + 10; 
      hover_bubble.y = itemY + 30; 

      hover_bubble.gotoAndStop('max'); 
      clearInterval(timer); 

     }, 500); 
    } 


    function btn_out(event:MouseEvent) { 
     //something here to stop the "timer" 

     event.target.gotoAndPlay('out'); 
     hover_bubble.gotoAndStop(1); 
    } 

답변

0

이 시도 :

var timer:uint; 
function btn_over(event:MouseEvent) { 
     timer = setInterval (function() { 

      hover_bubble.x = itemX + itemW + 10; 
      hover_bubble.y = itemY + 30; 

      hover_bubble.gotoAndStop('max'); 
      clearInterval(timer); 

     }, 500); 
    } 


function btn_out(event:MouseEvent) { 

    clearInterval(timer); 

    event.target.gotoAndPlay('out'); 
    hover_bubble.gotoAndStop(1); 
} 
+0

적합합니다. 감사! 나는 함수 밖에서 변수를 만드는 것을 생각하지 않았지만, 그 안에 간격을 설정하는 것은 그렇게 할 수 있었다. 그것은 완벽하게 작동했습니다. – ImageMagician