Skip to content
Home » Blog » mask vs blend mode

mask vs blend mode

마스크는 플래시에서 특정 영역만 보이게 하는 기능입니다. 기본적으로 마스크는 알파를 지원하지 않으므로 알파값이 있는 마스크를 사용하기 위해서는 마스크하는 클립과 마스크 당하는 클립에 cacheAsBitmap 을 활성화 해줘야 합니다. 코드로 보면 아래와 같습니다.

_mask.cacheAsBitmap = true;
_contents.cacheAsBitmap = true;
_contents.mask = _mask;

이런 마스크의 기능을 블렌드모드를 설정함으로서 거의 동일하게 구현 할 수 있는데 코드는 아래와 같습니다.

_mask.blendMode = BlendMode.ALPHA;
_contents.blendMode = BlendMode.LAYER;
_contents.addChild(_mask);

이 블렌드 모드를 잘 사용하면 마스크를 반대로 입힐 수도 있습니다.

_mask.blendMode = BlendMode.ERASE;
_contents.blendMode = BlendMode.LAYER;
_contents.addChild(_mask);

여튼 최근에 상당히 과도한 마스크작업을 해야 할 일이 생겨서 기본적인 mask 와 blend 를 이용한 마스크의 성능을 비교해 보았습니다. 사실 결과는 조금 의아하네요. 기본으로 알파만 있는 마스크의 경우는 기본 mask 가 더 빠른데 마스크에 블러를 적용하니 오히려 blend를 이용한 마스크가 미미하게 더 빠르네요.하지만 그렇게 큰 격차는 아닙니다. 다만 기본 mask를 이용 할 경우 cacheAsBitmap으로 인해 메모리가 계속 상승하는 단점이 있다는 점을 고려하면 blend를 이용한 마스크의 사용도 적극 고려해 볼만 할 것 같습니다.

혹시 알파값이 있는 마스크의 성능을 좀 더 높일 수 있는 좋은 다른 방법이 있다면 좀 알려주세요~ 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.