캐싱 기능이 필요한 경우
무비 클립에 캐싱을 활성화하면 표면이 만들어지며, 복잡한 벡터 애니메이션을 빠르게 렌더링할 수 있는 등 여러 이점이 발생합니다. 몇몇 상황에서는 캐싱을 활성화하는 것이 좋습니다. 항상 캐싱을 활성화한 상태로 유지하면 SWF 파일의 성능이 향상되는 것처럼 보이지만, 사실 캐싱을 활성화하면 성능이 오히려 저하되는 경우도 있습니다. 이 단원에서는 캐싱을 사용해야 할 경우와 일반 무비 클립을 사용해야 할 경우에 대해 설명합니다.
캐시된 데이터의 전체적인 성능은 인스턴스 벡터 데이터의 복잡도, 변경하려는 데이터의 양, opaqueBackground
속성의 설정 여부 등에 달려 있습니다. 작은 영역을 변경할 경우 표면과 벡터 데이터 중 어느 것을 사용해도 결과는 비슷합니다. 응용 프로그램을 배포하기 전에 두 가지 경우를 모두 테스트하는 것도 좋습니다.
알파 채널 마스킹을 사용하려면 cacheAsBitmap
속성을 true
로 설정해야 하며, 자세한 내용은 알파 채널 마스킹을(를) 참조하십시오.
비트맵 캐싱 기능이 필요한 경우
다음과 같은 경우에는 일반적으로 비트맵 캐싱을 사용할 경우 큰 이점을 얻을 수 있습니다.
복잡한 배경 이미지 섬세하고 복잡한 벡터 데이터 배경 이미지가 포함된 응용 프로그램을
사용할 경우입니다. 이것은 아마 비트맵 추적 명령을 적용한 이미지 또는 Adobe Illustrator에서 작성한 아트웍이 될
수 있을 것입니다. 배경에 있는 문자들에 애니메이션 효과를 적용할 수도 있으며, 그 결과 배경에서 벡터 데이터를 지속적으로 다시
생성해야 하므로 해당 애니메이션의 속도는 느려집니다. 성능을 향상시키려면 해당 내용을 선택하여 무비 클립에 저장한 다음 opaqueBackground
속성을 true
로 설정합니다. 배경이 비트맵으로 렌더링되고 빠르게 다시 그려지므로 애니메이션은 훨씬 더 빠르게 재생됩니다.
스크롤 텍스트 필드 스크롤 텍스트 필드에 대량의 텍스트를 표시하는 응용 프로그램을 사용할 경우입니다. 스크롤 경계선으로 스크롤이 가능하도록 설정(즉, scrollRect
속성을 설정함)한 무비 클립 안에 텍스트 필드를 배치할 수 있습니다. 이렇게 하면 지정된 인스턴스에 대해 빠른 픽셀 스크롤을
수행할 수 있습니다. 사용자가 무비 클립 인스턴스를 스크롤하면 스크롤된 픽셀은 위쪽으로 이동하며 전체 텍스트 필드가 다시
생성되는 대신 새롭게 표시되는 영역만 생성됩니다.
윈도우 시스템 윈도우가 겹쳐지는 복잡한 구조가 포함된 응용 프로그램을 사용할 경우입니다. 각 윈도우는, 예를 들면 웹 브라우저 윈도우처럼 열려져 있거나 닫혀져 있을 수도 있습니다. cacheAsBitmap
속성을 true
로 설정하여 각 윈도우를 표면으로 표시하면 각 윈도우는 서로 분리되고 캐시됩니다. 사용자는 윈도우를 드래그하여 서로 겹쳐지게 할 수 있으며, 각 윈도우에서는 벡터 내용을 다시 생성할 필요가 없습니다.
이와 같은 모든 경우에, 벡터 그래픽이 최적화되므로 응용 프로그램의 응답성 및 상호 작용성은 향상됩니다.
비트맵 캐싱이 인스턴스에 적용되는 방식을 보여 주는 샘플 소스 파일을 볼 수 있습니다. 로컬 시스템상의 Samples 폴더에서 cacheBitmap.fla 파일을 참조하십시오.
- (Windows) boot_drive\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\CacheBitmap
- (Macintosh) Macintosh_HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/ActionScript/CacheBitmap
또한 비트맵 캐싱을 스크롤 텍스트에 적용하는 방법을 보여 주는 샘플 소스 파일을 볼 수 있습니다. 로컬 시스템상의 Samples 폴더에서 샘플 소스 파일인 flashtype.fla를 참조하십시오.
- (Windows) boot_drive\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\FlashType
- (Macintosh) Macintosh_HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/ActionScript/FlashType
비트맵 캐싱의 사용을 피해야 할 경우
이 기능을 잘못 사용하면 SWF 파일에 부정적인 영향을 미칩니다. 표면을 사용하는 FLA 파일을 작성할 경우 다음 지침을 준수해야 합니다.
- 표면(캐싱이 활성화된 무비 클립)을 과도하게 사용하지 않습니다. 각 표면은 일반 무비 클립보다 메모리를 더 차지하므로 렌더링 성능을 향상시킬 경우에만 표면을 활성화하는 것이 좋습니다.
캐시된 비트맵은 일반 무비 클립 인스턴스보다 훨씬 더 많은 메모리를 소비할 수도 있습니다. 예를 들어, 스테이지에서 크기가 250픽셀*250픽셀인 무비 클립이 캐시될 경우 250KB가 소비되는 반면에, 동일한 크기의 일반(캐시되지 않은) 무비 클립 인스턴스는 1KB를 소비합니다.
- 캐시된 표면에 확대/축소를 적용하지 않습니다. 비트맵 캐싱을 남용하면 특히 내용을 확대 및 축소할 경우 상당한 양의 메모리가 소비됩니다(앞의 항목 참조).
- 표면은 대부분 정적인, 즉 움직임이 거의 없는 무비 클립 인스턴스에 대해 사용합니다. 이 경우에 인스턴스를 드래그하거나 이동할 수 있지만 인스턴스의 내용은 움직이거나 크게 변경되어서는 안 됩니다. 예를 들어 인스턴스를 회전하거나 변형하면 해당 인스턴스는 표면 및 벡터 데이터간에서 전환되는데, 이는 처리하기 어려운 작업이며 SWF 파일에 부정적인 영향을 미치기도 합니다.
- 표면을 벡터 데이터와 혼합하면 Flash Player 또는 컴퓨터에서 수행해야 하는 처리 작업이 증가됩니다. 가능하면 표면을 서로 그룹화하는 것이 좋으며, 예를 들면 윈도우 응용 프로그램을 작성할 경우가 그렇습니다.
[출처] 비트맵 캐싱 기능이 필요한 경우 |작성자 백이몽