본문 바로가기

Blog/Flex

Problem with BlendMode.Erase

드로잉 기능을 구현하다 이상한 현상을 발견했다. blendMode 속성을 BlendMode.ERASE 로 설정하여 지우기 기능을 만드는데 다음 그림과 같이 이상하게 지워진다.

 [그리기]

 [이상하게 지우기] 지워지기는 하지만 그리기 부분이 없는 곳에서는 BlandMode가 먹혀들질 않는다!

cacheAsBitmap = true

[정상적인 지우기] 원인은 엉뚱하게도 부모객체의 cacheAsBitmap 속성이 true로 설정되어 있었기 때문이다.
cacheAsBitmap = false 로 설정하고난 후에야 다음과 같이 정상적으로 지우기가 가능해 졌다.

cacheAsBitmap = fase

이런현상은 필터를 적용한경우, PopupManager를 통해 modal로 창을 띄우는 경우에도 발생할 수 있다. 이런 기능들은 잠정적으로 cacheAsBitmap값을 true로 바꾸기 때문으로 생각된다. 

popup창을 띄우는 경우엔 다음과 같이 스타일을 적용하면 해결된다.