Flash Professional CS5.5에는 RSL(런타임 공유 라이브러리) 미리 로드를 지원하기 위해 fl.display.ProLoader 및 fl.display.ProLoaderInfo 클래스가 도입되었습니다. 이러한 클래스는 flash.display.Loader 및 flash.display.LoaderInfo 클래스를 미러링하지만 로딩 환경의 일관성이 더 뛰어납니다.
특히, ProLoader는 TLF(Text Layout Framework)과 RSL 미리 로드를 함께 사용하는 SWF 파일을 로드하는 데 도움이 됩니다. 다른 SWF 파일 또는 SWZ 파일(예: TLF)을 미리 로드하는 SWF 파일을 런타임에 사용하려면 내부 전용 SWF 래퍼 파일이 있어야 합니다. SWF 래퍼 파일로 인해 레이어가 추가로 복잡해지면 원치 않는 비헤이비어가 발생할 수 있는데, ProLoader는 이러한 복잡성을 해결하여 이들 파일을 일반적인 SWF 파일인 것처럼 로드합니다. ProLoader 클래스에서 사용되는 솔루션은 사용자에게 투명한 방식으로 실행되며, 솔루션을 사용하기 위해 ActionScript에서 특별히 처리할 필요가 없습니다. 또한 ProLoader는 일반적인 SWF 내용을 올바르게 로드합니다.
Flash Professional CS 5.5 이상에서는 모든 Loader 클래스를 대신하여 ProLoader 클래스를 사용해도 무방합니다. 그런 다음에는 ProLoader가 필요한 ActionScript 기능에 액세스할 수 있도록 응용 프로그램을 Flash Player 10.2 이상으로 내보냅니다. ActionScript 3.0을 지원하는 이전 버전의 Flash Player를 대상으로 지정하는 경우에도 ProLoader를 사용할 수 있지만, ProLoader의 기능을 최대한 활용하려면 Flash Player 10.2 이상과 함께 사용해야 합니다. Flash Professional CS5.5 이상에서 TLF를 사용할 경우 항상 ProLoader를 사용하십시오. Flash Professional 이외의 환경에서는 ProLoader를 사용할 필요가 없습니다.
중요:
Flash Professional CS5.5 이상에서 제작된 SWF 파일의 경우에는 flash.display.Loader 및 flash.display.LoaderInfo 대신 항상 fl.display.ProLoader 및 fl.display.ProLoaderInfo 클래스를 사용해도 됩니다.
ProLoader 클래스를 통해 해결되는 문제
ProLoader 클래스는 기존 Loader 클래스로 처리하지 못하는 문제를 해결합니다. 이러한 문제는 TLF 라이브러리의 RSL 미리 로드로 인해 발생하며, 특히 Loader 객체를 사용하여 다른 SWF 파일을 로드하는 SWF 파일에 적용됩니다. 해결되는 문제는 다음과 같습니다.
-
로드하는 파일과 로드되는 파일 간의 스크립팅이 예상대로 작동하지 않습니다.
ProLoader 클래스는 로드하는 SWF 파일을 로드되는 SWF 파일의 부모로 자동 설정합니다. 따라서 로드하는 SWF 파일의 통신 내용이 로드되는 SWF 파일로 직접 전달됩니다.
-
SWF 응용 프로그램이 로드 프로세스를 관리해야 합니다.
이렇게 하려면
added
,
removed
,
addedToStage
및
removedFromStage
같은 추가 이벤트를 구현해야 합니다. 응용 프로그램이 Flash Player 10.2 이상을 대상으로 하는 경우 ProLoader는 이러한 추가 작업을 수행할 필요가 없도록 합니다.
Loader 대신 ProLoader를 사용하기 위한 코드 업데이트
ProLoader는 Loader 클래스를 미러링하기 때문에 코드에서 두 클래스를 손쉽게 전환할 수 있습니다. 다음 예제는 기존 코드를 업데이트하여 새 클래스를 사용하는 방법을 보여 줍니다.
import flash.display.Loader;
import flash.events.Event;
var l:Loader = new Loader();
addChild(l);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
l.load("my.swf");
function loadComplete(e:Event) {
trace('load complete!');
}
이 코드는 다음과 같이 ProLoader를 사용하도록 업데이트할 수 있습니다.
import fl.display.ProLoader;
import flash.events.Event;
var l:ProLoader = new ProLoader();
addChild(l);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
l.load("my.swf");
function loadComplete(e:Event) {
trace('load complete!');
}