2014-06-24 3 views
1

AS3의 Loader 클래스를 통해로드 된 swf 파일을 반복하려고합니다. 내가 로더가 포함 된 동영상이 완료되면 대한 이벤트가 없습니다 이해하는 것과Loader로로드 된 SWF 파일을 루프하는 방법은 무엇입니까?

public class MyLoader extends MovieClip { 
    public function MyLoader() { 
     var myLoader:Loader = new Loader(); 
     var url:URLRequest = new URLRequest("external-movie.swf"); 
     myLoader.load(url); 
     myLoader.contentLoaderInfo.addEventListener("complete", function() { 
     }); 
     addChild(myLoader); 
    } 
} 

: 내 코드는 다음과 같은 모습? 그걸 알아낼 방법이 있을까요? AS3 구현이 아니어야합니다. InDesign에서 내 보낸 영화를 루프로 실행하기 만하면됩니다. 미리 감사드립니다.

+0

그냥 팁을 당신의 handleInit 방법에

myLoader = new Loader(); var url:URLRequest = new URLRequest("external-movie.swf"); myLoader.load(url); myLoader.contentLoaderInfo.addEventListener(Event.INIT, handleInit); 

는 그 영화의 참조를 유지 : 로드하기 전에 전체 수신기를 추가해야합니다. – BadFeelingAboutThis

답변

1

특히 프로그래밍 경험이 거의없는 경우 더러운 단축키는 피해야합니다. 따라서 익명의 함수를 피하고 정적 이벤트 변수 대신 문자열을 사용하지 마십시오. 로드 된 동영상에 타임 라인이있는 경우 MovieClip으로 변환됩니다. 또한 그 영화는 임베디드되지 않지만로드되고 그것은 큰 차이입니다.

그 영화의 참조 및 로더를 보관 :

private var theLoadedMovie:MovieClip; 
private var myLoader:Loader; 

(타임 라인에 영화가 자신의 첫 번째 프레임이로드 "INIT"때 COMPLETE를 연주하기 시작 대신 COMPLETE 이벤트의 INIT 이벤트를 수신 전체 무비가로드 될 때 이벤트가 발생 함). 그것은이 종료 할 때 알고 영화의 진행 상황을 확인하여 handleEnterFrame 방법에

theLoadedMovie = myLoader.content as MovieClip; 
addChild(theLoadedMovie); 
theLoadedMovie.addEventListener(Event.ENTERFRAME, handleEnterFrame); 

:

if(theLoadedMovie.currentFrame == theLoadedMovie.totalFrames) 
{ 
    //movie has reached then end 
} 
+0

'load()'를 사용하기 전에 로더 리스너를 추가해야합니다. 현재 스레드 실행을 완료하기 전에로드에서 리턴 할 수있는 특정 상황이 있습니다. – BadFeelingAboutThis

+0

나는이 방법이 (+1) 최선의 방법이라는 것에 동의 할 것이다. 더 적은 수의 코드 라인에서 'addFrameScript'를 사용하여 수행 할 수도 있지만,'addFrameScript'는 문서화되지 않았고 신뢰할 수없는 것이 가장 좋다. – BadFeelingAboutThis

+0

복사 및 붙여 넣기 작업이 수행됩니다. 로드가 코스 끝에서 발생해야합니다. – BotMaster

관련 문제