표시 객체 캐싱Flash Player 9 이상, Adobe AIR 1.0 이상 응용 프로그램을 작성하든 스크립팅된 복잡한 애니메이션을 작성하든 Flash에서 작업하는 디자인은 규모가 커질 수 있으므로, 성능 및 최적화를 고려해야 합니다. 사각형 Shape 인스턴스와 같이 정적으로 유지되는 내용은 Flash Player와 AIR에서 자동으로 최적화되지 않습니다. 따라서 사각형의 위치를 변경할 경우 Flash Player나 AIR에서는 전체 Shape 인스턴스가 다시 그려집니다. 지정된 표시 객체를 캐시하여 SWF 파일의 성능을 향상시킬 수 있습니다. 표시 객체는 기본적으로 인스턴스 벡터 데이터의 비트맵 버전인 표면이며, 이것은 SWF 파일을 만드는 과정에서 자주 변경하지 않는 데이터입니다. 그러므로 캐싱이 활성화된 인스턴스는 SWF 파일이 재생될 때 계속적으로 다시 그려지지 않습니다. 따라서 SWF 파일은 빠르게 렌더링됩니다. 참고: 벡터 데이터는 표면이 다시 만들어질 때 업데이트할 수 있습니다. 그러므로 표면에 캐싱된 벡터 데이터는 전체 SWF 파일에서 동일하게 유지될 필요가 없습니다.
표시 객체의 cacheAsBitmap 속성을 true로 설정하면 표시 객체가 자체 비트맵 표현을 캐시합니다. Flash Player나 AIR에서는 인스턴스에 대해 표면 객체가 만들어지며 이 객체는 벡터 데이터 대신에 비트맵으로 캐시된 것입니다. 표시 객체의 경계를 변경하면 표면은 크기가 조절되지 않고 다시 만들어집니다. 표면은 서로 다른 표면 안에 중첩이 가능합니다. 이 경우, 자식 표면은 부모 표면으로 비트맵을 복제하게 됩니다. 자세한 내용은 비트맵 캐싱 활성화을 참조하십시오. DisplayObject 클래스의 opaqueBackground 및 scrollRect 속성은 cacheAsBitmap 속성을 사용하여 비트맵 캐싱과 연관됩니다. 위 세 가지 속성은 서로 독립적이지만, opaqueBackground 및 scrollRect 속성은 객체가 비트맵으로 캐시되는 경우 가장 잘 작동합니다. 즉, opaqueBackground 및 scrollRect 속성은 cacheAsBitmap이 true로 설정된 경우에만 성능상의 이점을 제공합니다. 표시 객체 내용 스크롤에 대한 자세한 내용은 표시 객체 패닝 및 스크롤을 참조하십시오. 불투명 배경 설정에 대한 자세한 내용은 불투명한 배경색 설정을 참조하십시오. 알파 채널 마스크를 사용하려면 cacheAsBitmap 속성을 true로 설정해야 합니다. 자세한 내용은 표시 객체 마스크을 참조하십시오. 캐싱 기능이 필요한 경우표시 객체에 캐싱을 활성화하면 표면이 만들어지며, 복잡한 벡터 애니메이션을 빠르게 렌더링할 수 있는 등 여러 이점이 있습니다. 몇몇 상황에서는 캐싱을 활성화하는 것이 좋습니다. SWF 파일의 성능을 향상하려면 항상 캐싱을 활성화하는 것이 좋을 것처럼 보이지만, 캐싱을 활성화해도 성능이 향상되지 않거나 오히려 저하되는 경우도 있습니다. 이 단원에서는 캐싱을 사용해야 할 경우와 일반 표시 객체를 사용해야 할 경우에 대해 설명합니다. 캐시된 데이터의 전체적인 성능은 인스턴스 벡터 데이터의 복잡도, 변경하려는 데이터의 양, opaqueBackground 속성의 설정 여부 등에 달려 있습니다. 작은 영역을 변경할 경우 표면과 벡터 데이터 중 어느 것을 사용해도 결과는 비슷합니다. 응용 프로그램을 배포하기 전에 두 가지 경우를 모두 테스트하는 것도 좋습니다. 비트맵 캐싱 기능이 필요한 경우다음과 같은 경우에는 일반적으로 비트맵 캐싱을 사용할 경우 큰 이점을 얻을 수 있습니다.
이와 같은 모든 경우에 비트맵 캐싱을 활성화하면 벡터 그래픽이 최적화되므로 응용 프로그램의 응답성 및 상호 작용성이 향상됩니다. 또한 표시 객체에 필터를 적용할 때마다 cacheAsBitmap이 자동으로 true로 설정됩니다. 이 속성을 false로 명시적으로 설정한 경우에도 마찬가지입니다. 표시 객체에서 모든 필터를 지우면 cacheAsBitmap 속성이 마지막 설정된 값으로 돌아갑니다. 비트맵 캐싱의 사용을 피해야 할 경우이 기능을 잘못된 환경에서 사용하면 SWF 파일의 성능이 저하될 수도 있습니다. 비트맵 캐싱을 사용할 경우 다음 지침을 따라야 합니다.
비트맵 캐싱 활성화표시 객체에 대한 비트맵 캐싱을 활성화하려면 cacheAsBitmap 속성을 true로 설정합니다. mySprite.cacheAsBitmap = true; cacheAsBitmap 속성을 true로 설정하면 표시 객체가 전체 좌표를 기준으로 자동으로 픽셀에 물리는 것을 볼 수 있습니다. SWF 파일을 테스트하면 복잡한 벡터 이미지에서 수행되는 애니메이션이 더욱 빠르게 렌더링되는 것이 보입니다. 다음 중 한 가지 이상의 경우에 해당되면 cacheAsBitmap이 true로 설정되었더라도 표면(캐시된 비트맵)이 만들어지지 않습니다.
캐시된 비트맵 변형 행렬휴대 장치용 AIR 응용 프로그램에서 cacheAsBitmap 속성을 설정할 때마다 cacheAsBitmapMatrix 속성도 설정해야 합니다. 이 속성을 설정하면 재렌더링을 트리거하지 않고 표시 객체에 더 다양한 변형을 적용할 수 있습니다. mySprite.cacheAsBitmap = true; mySprite.cacheAsBitmapMatrix = new Matrix(); 이 행렬 속성을 설정하면 객체를 다시 캐시하지 않고 표시 객체에 다음의 추가적인 변형을 적용할 수 있습니다.
이러한 변형은 캐시된 비트맵에 직접 적용됩니다. |
|