2012-10-05 3 views
0

actionscript 프리 로더가 MovieClip을 확장해야합니까?순수 AS3 프리 로더가 MovieClip을 확장해야합니까?

... 
public class Preloader extends MovieClip 
{ 

    public function Preloader() 
    { 
     if (stage) { 
      stage.scaleMode = StageScaleMode.NO_SCALE; 
      stage.align = StageAlign.TOP_LEFT; 
     } 
     addEventListener(Event.ENTER_FRAME, checkFrame); 
     loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress); 
     loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError); 

     // TODO show loader 
    } 
... 

또는 Sprite를 확장 할 수도 있습니까?

+0

스프 라이트를 사용해 보았지만 성공하지 못 했습니까? – inhan

+0

솔직히 말해서 지금 당장은 프로젝트 설정이 없으며 플래시 환경을 부팅하기에는 너무 게으른 편입니다. 빨리 자바 물건으로 바쁘다. – avanderw

+0

게으름을위한 Downvote, 정직을위한 upvote. 그리고 짧은 대답; 타임 라인을 사용하지 않으면 Sprite를 확장 할 수 있습니다 (이 경우 MovieClip을 사용해야 함). –

답변

3

프리 로더는 실제로 별도의 SWF를로드하는 경우에만 Sprite를 확장 할 수 있습니다. 내장 프리 로더가있는 SWF를 만들면 두 개의 프레임이 필요합니다. Flash Player에서 프레임을 순차적으로로드하므로 프리 로더가 작동하는 데 필요한 SWF 부분을로드하고 표시 할 수있는 유일한 방법입니다. 그리고 그 프레임에는 MovieClip이 필요합니다. Sprite에는 프레임이 없습니다.

0

베스퍼의 대답 이후. 나는 약간의 실수를했다

private function checkFrame(e:Event):void 
    { 
     if (currentFrame == totalFrames) 
     { 
      stop(); 
      loadingFinished(); 
     } 
    } 

스프라이트는 currentFrame, totalFrames 또는 심지어 stop 메소드에 액세스 할 수 없다. 그러나 MovieClip은 않습니다.

0

예, Sprite까지 확장 할 수 있습니다.

프레임 이벤트 대신 TimerEventTimer을 사용합니다. 어떤 이유로 든 프레임 또는 시간 기반 참조를 피하려면 ProgressEvent을들을 수 있습니다. 두 이벤트 중 하나의 핸들러에서 "프리 로더"그래픽을 작성 /로드하고 조작 할 수 있습니다.

이것은 보통 필요한 것보다 어렵고 대부분 MovieClip 기능을 복제하므로이 경로를 사용하는 것이 좋습니다.

관련 문제