CODEONWORT

줄무늬 선 그리기 본문

Season 1/플래시

줄무늬 선 그리기

codeonwort 2011.02.05 19:51

* fla는 cs4 이상에서 열립니다

- 화면 오른쪽 위의 패턴을 Graphics#lineBitmapStyle()의 소스로 쓴다.
- 마우스의 이전 좌표와 현재 좌표를 이용하여 패턴을 얼마나 돌릴 지를 계산한다.
- 패턴을 돌려서 선을 그린다.

일단 이렇게 초기화를 하고
var g:Graphics = Shape(addChildAt(new Shape, 0)).graphics
g.lineStyle(12, 0, 1, false, "none", "square")

mouseMove 이벤트 수신자다. (불필요한 줄은 삭제)
function mm(e:MouseEvent):void {
        // 회전량을 0으로 (Matrix에 각도를 설정하는 메서드는 없고 지정한 각도만큼 돌리는 메서드만 있어서 이렇게 했다)
mat.a = mat.d = 1
mat.b = mat.c = 0
// 회전량을 구해서 행렬을 돌린다
var ang:Number = Math.atan2(e.stageY-prevY, e.stageX-prevX)
mat.rotate(ang)
g.lineBitmapStyle(pattern_bd, mat, true, false)
g.lineTo(e.stageX, e.stageY)
prevX = e.stageX
prevY = e.stageY
}

...발상은 이러했으나 처음 패턴을 돌리고나면 마우스를 이리저리 휘둘러봐도 패턴이 더 회전되어 찍히지 않는다!
알고보니 g.lineStyle(~~) 호출도 매번 다시 해야 회전이 계속 적용되는 거였지만, 그렇게 한 결과는... 어휴.



그리고 외할머니댁 가서 할 게 없는 관계로 원더플로 만들어봤다.

striped line - wonderfl build flash online


설명하기가 귀찮아서 올리는 그림
0 Comments
댓글쓰기 폼