위처럼 객체가 있을때 저 객체의 영역을 구하고 싶다면
단순히 mc.width 와 mc.height 가 될것입니다.
그렇다면 아래와 같은 상황은 어떨까요?
분명 width와 height 는 같은데 좌표가 다르기 때문에
상황이 조금 다릅니다.
이같은 상황은 Display List 상에서 객체의 위치나 영역을 참조할때,
BitmapData.draw(), Matrix 등을 다룰때 문제를 발생시킵니다.
아마 액션스크립트를 조금 해보신 분이라면
mc.x + mc.width 와 mc.y + mc.height 라고 생각하실지도 모릅니다.
하지만 아쉽게도 좌표는 0, 0 이기 때문에
정답이 아닙니다.
그렇다면 안에 있는 객체를 가져다가 좌표를 계산해주면 어떨까요?
맞는 답입니다.
하지만 스스로 구현하려고 할 필요가 없습니다.
DisplayObject.getBound( null ): Rectangle 메소드가 알아서 해주기 때문이죠.
리턴값이 Rectangle 이기 때문에 알아서 좌표와 영역을 뱉어주죠.
저게 우리가 플래시에서 우클릭해서 "다시 그리기 영역"을 볼때 나오는
영역일것이라 추정됩니다.
|
이렇게 해서 BitmapData 를 그릴때는 bound.x + bound.width 로 해주면
모든 영역을 감싸는 BitmapData 를 만들 수 있습니다.
'ActionScript 3.0 > 팁 & 노하우' 카테고리의 다른 글
[AS3] 네이밍과 코드 스타일 (31) | 2008.10.26 |
---|---|
[AS3] 문자열 바이트로 제한하기 (12) | 2008.10.23 |
[AS3] 최적화 코드 (9) | 2008.09.08 |
[AS3] 몇 초 후에 메소드 실행하기 (23) | 2008.09.01 |
[AS3] 인스턴스의 타입체크하기. (12) | 2008.08.31 |