2012-11-22 2 views
1

네비게이션 트리에서 다른 영화 클립을로드 할 수있는 동영상 클립 브라우저를 만들었습니다. 나는 인터 넷 클립을 언로드하거나 제거하는 경우에도 인터벌이있는 모든 영화 (setInterval())가 계속 진행되는 것을 알아 챘습니다.unloadMovie/removeMovieclip 후에도 setInterval 이벤트가 계속 발생합니다.

로드 된 영화 클립을 제어 할 수 없다는 점을 감안할 때, 어떻게 간격을 포함하여 영화 클립을 완전히 제거 할 수 있습니까?

나는 모든 실행 간격을 없애기 위해이 함수를 만들었지 만 수행해야하는 방식이 아닙니다 (또는 그렇습니까?). 그래도 잘 작동하는 것 같습니다 ...

var LastCleared=-1; 
ClearAllIntervals = function(){ 
//You MUST clear the intervals or they will not be deleted. Every setInterval returns a higher number. 
    Highest = setInterval(function(){},100); //Get highest intervalnumber 
    i=Highest; 
    while(i>LastCleared){ 
     trace("***************clearing interval:"+i); 
     clearInterval(i--); 
    } 
    LastCleared=Highest; 
} 

답변

0

LastCleared/Highest는 결코 삭제하지 않기 때문에 항상 실행됩니다.

또한 ClearAllIntervals() 함수의 범위는 무엇입니까? LastCleared의 이전 값을 기억하지 못하는 새로운 인스턴스가 생성 될 수 있습니까?

setInterval이 순차 번호를 반환한다고 생각하는 것처럼 보이는 문서는 찾을 수 없었습니다. 그러나 setInterval은 누구에게도 속하지 않으므로 해당 간격 ID를 캡처하기 위해 재정의 할 수 없습니다.

마지막으로 AS3에는 플레이어의 이후 버전에서 메모리에서로드 된 영화를 릴리스하는 기능이 있으며로드 된 MC가로드 MC의 모든 항목에 자신을 부착하는 것을 방지하는 샌드 권투가 있습니다.

관련 문제