필터 및 동적 비트맵 언로드

Pixel Bender를 통해 처리하는 필터를 비롯하여 필터 사용을 피합니다.

Pixel Bender를 통해 휴대 장치에서 처리되는 필터를 비롯하여 필터와 같은 효과의 사용을 최소화하십시오. 필터 효과가 표시 객체에 적용되면 런타임은 메모리에 두 개의 비트맵을 만듭니다. 이러한 비트맵은 각각 표시 객체의 크기를 가집니다. 첫 번째 비트맵은 표시 객체의 래스터화된 버전으로 만들어져 필터가 적용된 두 번째 비트맵을 생성하는 데 다시 사용됩니다.

전체 화면으로 그래픽 보기
필터가 적용되었을 때 메모리의 두 비트맵

필터의 속성 중 하나를 수정하면 두 비트맵이 메모리에서 업데이트되어 결과 비트맵이 만들어집니다. 이 프로세스에는 약간의 CPU 처리가 수반되며 두 비트맵에 상당한 양의 메모리가 사용될 수 있습니다.

Flash Player 10.1 및 AIR 2.5는 모든 플랫폼에서 작동하는 새 필터링 비헤이비어를 도입했습니다. 필터가 30초 내에 수정되지 않거나, 숨겨지거나 화면에서 벗어나는 경우 필터가 적용되지 않은 비트맵에 사용된 메모리가 해제됩니다.

이 기능은 모든 플랫폼에서 필터에 사용되는 메모리를 절반으로 줄입니다. 예를 들어 흐림 필터가 적용된 텍스트 객체를 고려해 봅니다. 이 예에서 텍스트는 간단한 장식에 사용되고 수정되지 않습니다. 30초 후 메모리에서 필터가 적용되지 않은 비트맵이 해제됩니다. 텍스트가 30초 동안 숨겨지거나 화면에서 벗어나는 경우에도 똑같은 결과가 발생합니다. 필터 속성 중 하나가 수정되는 경우 메모리에서 필터가 적용되지 않은 비트맵이 다시 만들어집니다. 이 기능을 동적 비트맵 언로드라고 합니다. 이러한 최적화를 사용하는 경우에도 필터 사용 시에는 주의해야 합니다. 필터를 수정할 경우 여전히 많은 양의 CPU 또는 GPU 처리가 필요합니다.

가장 좋은 방법은 가능한 경우 제작 도구(예: Adobe® Photoshop®)를 통해 만든 비트맵을 사용하여 필터를 에뮬레이션하는 것입니다. ActionScript에서 런타임에 만든 동적 비트맵은 사용하지 마십시오. 외부에서 제작된 비트맵을 사용하면 런타임에서 CPU 또는 GPU 로드를 줄이는 데 도움이 되며, 시간이 지나도 필터 속성이 변경되지 않는 경우에 특히 유용합니다. 가능한 경우 제작 도구에서 비트맵에 대해 필요한 모든 효과를 만드십시오. 그러면 아무런 처리도 수행하지 않고 런타임에서 비트맵을 표시할 수 있으므로 속도가 훨씬 더 빨라질 수 있습니다.