[AS3] SelectArea, DrawShape and Sewing

Project/Programming 2007. 8. 31. 18:30
예전에 http://www.tileui.com/ 사이트를 보면 스테이지 상에 있는 복수의 오브젝트를 선택할 때 직사각형으로 선택하는 것이 아닌 draw 형태를 이용하여 필요한 요소만 선택할 수 있다. 이 것을 보고 그려진 Shape를 통해서 선택할 수 있도록 하면 되겠다 싶어서 구현해 봤다.

일단은 클래스의 구조는 아래와 같이 작성했다.

DrawShape.as
이 클래스는 Point 요소를 가지고 있는 Array를 전달하고 그것을 통해 그려진 Shape를 돌려주는 클래스

Sewing.as
이 클래스는 Point 요소를 가지고 있는 Array를 전달하고 그것을 통해 외각선을 그려주는 클래스

SelectArea.as
이 클래스는 DrawShape와 Sewing클래스를 통해 그려진 Shape에 걸쳐진 오브젝트들을 Array로 반환하는 메소드를 가지고 있다. 여기에는 마우스를 UP을 했을 때 Event를 dispatch하게 되는데 이벤트를 받는 메소드에서 기존의 array 요소 중에서 선택된 오브젝트 요소를 가지고 있는 새로운 배열을 참조할 수 있게 하였다.

아래 예제에서는 랜덤한 위치에 생성한 오브젝트들을 마우스 down and drag, up을 통해서 선택을 하면 대각선 방향으로 정렬하게 해놨는데 대각선으로 정렬되는 것은 일정한 규칙이 있는 것은 아니고 디테일하게 하기 귀찮아서 그냥 되는대로 정렬해놨다…쿠쿠 목적이 없는 예제는 슬슬 힘이 빠진다는..;;

    

설정

트랙백

댓글

  • c.moore 2007.11.11 19:59 ADDR 수정/삭제 답글

    Any source going to be made available for this? I could really see this being useful to many :) thanks!

    • jasu 2007.11.12 02:48 신고 수정/삭제

      Sorry... I don't reveal the source code... but, if my source code is cleanup, i will... thank you for visit my blog...

  • SC 2008.10.02 16:53 ADDR 수정/삭제 답글

    JaSu님 제발. .다시한번만 볼수 없을까요 ..
    영역 선택문제 때문에 살이 쫙쫙 빠지고 있습니다.

    • jasu 2008.10.07 12:54 신고 수정/삭제

      이 게시물에 대한 소스는 오픈한 적이 없습니다. hitTest와 좌표계를 이용하시면 될것 같네요 소스는 예전에 만들어 놓은 자료에서 정리가 되지 않아서 정리가 되면 올려 놓도록 하겠습니다. 감사합니다.

  • SC 2008.10.09 07:31 ADDR 수정/삭제 답글

    JaSu님 ㅋㅋ 영역선택하는거 성공했습니다 .ㅋ
    차분히 생각하면서 하면 되는군요.ㅋ
    감사합니다 .ㅋ