2011-08-16 1 views
1

외부 스크립트를 플래시로드하는 진행 상황을 표시하는 ActionScript 3 로더를 구축 중입니다. 여기에 완벽하게 작동 내 코드의 조각이다,하지만 난 그것을 필요로하는 이유에에 조금 혼란 스러워요 : 당신이 볼 수 있듯이, 다양한 이벤트를 수신하기위한 각시 트리거ActionScript 3 contentloaderinfo 란 무엇입니까?

this.SWFLoader = new Loader(); 
this.SWFLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, trackProgress); 
this.SWFLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); 
this.SWFLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); 

, 나는 세 가지 이벤트 리스너가 로드 프로세스.

  1. contentloaderinfo 오브젝트 무엇 : 위의 조각에 관해서

    , 나는 여기의 확실하지 오전 무엇?

  2. contentloaderinfo 개체에 포함 된 속성은 무엇입니까?
  3. 그냥 this.SWFLoader.addEventListener()을 사용할 수없는 이유는 무엇입니까?
  4. 언제 contentloaderinfo을 사용하는 것이 적당합니까?

이 주제는 상당히 혼란 스럽지만 나는 그것에 대해 잘 설명하지 못했습니다. 질문의 충돌 목록에 대해 유감스럽게 생각합니다. 나는 모든 좋은 대답에 대해 보상 할 것입니다.

감사합니다.

답변

5

로드를 수행하기 위해 Loader 클래스를 만들고 contentLoaderInfo은로드되는 내용에 대한 기본 정보를 추적하는 해당 클래스 내의 객체입니다. 속성 중 일부는 bytesLoaded, bytesTotal, url, loaderURLapplicationDomain입니다. 가장 일반적으로 사용되는 문자는 bytesLoadedbytesTotal이며, 이는로드되는 항목의 비율을 쉽게 나타냅니다. 그것들은 ProgressEvent.PROGRESS이 호출 될 때마다 업데이트되어, 프리 로더로부터 그래픽 요소를 약간 남겨 둡니다.

contentLoaderInfo 개체에는로드 프로세스가 시작, 업데이트, 완료 및/또는 실패하는시기를 알기 위해 구독 할 수있는 다른 편리한 이벤트가 있습니다.

당신은 훨씬 더 상세하게 얻을 수있는 AS3 문서를 방문 할 수 있습니다 : http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html

을 할 수있는 '혼동을 일으킬 정도로 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#contentLoaderInfo

을 당신이 여기의 속성과 메서드를 볼 수 있도록, contentLoaderInfoLoaderInfo 객체이며, SWFLoader가 해당 이벤트를 발생시키지 않으므로 this.SWFLoader.addEventListener()을 사용하십시오. 그보다 훨씬 많은 부하 친화적 인 어린이 (contentLoaderInfo)가 그렇게합니다. 따라서 코드는 그대로 작동합니다.

사용할 수있는 방법이나 속성을 활용해야하는 경우 contentLoaderInfo을 사용하는 것이 적절합니다. 그것은 dodgy 대답처럼 들리지만, 사실입니다. 일반적으로 사용자는 현재와 마찬가지로 로딩 부서에서 진행되는 작업에 사용자를 숨기지 않도록 단계별 요소를 업데이트하는 함수를 작성합니다.

+0

우수 답변 Matt !!! 자세한 답변을 해 주셔서 감사합니다. –

+0

Loader가 작동 방식을 알아 내면 Loader를 확장 한 다음 Loader에서 해당 이벤트를 수신하고 재발송하도록 할 수 있습니다. 확장 클래스를 사용한다면, Demeter의 법칙이 더 좋을 것이라고 직접적으로들을 수 있습니다. –