sub_title
 Flash
제   목 피타고라스를 이용한 거리계산
작성자 웹돌이 등록일 2007-10-06 12:46:14 조회수 4,216




ㅇㅇ
날씨가 넘좋아요~ 놀러가구 싶당......
여자들의 치마두 짧아지구^^(변태 아닙니당~)

이번에는 피타고라스의 정리를 이용하여 어느 물체와의 마우스와의 거리를 구하는 것을 해보겠습니다
일단 무비클립을 하나만들고 이름은 baseObj
그리고 다이나믹 텍스트를 하나만들어서 이름이 아닌 변수값에 display

그리고 프레임에 액션

function calculateDistance(baseX, baseY, movingX, movingY) {
        diffX = movingX-baseX;
        diffY = movingY-baseY;
        return  Math.sqrt(diffX*diffX+diffY*diffY);
}
this.onEnterFrame = function() {
        display = Math.floor(calculateDistance(baseObj._x, baseObj._y, _root._xmouse, _root._ymouse));
        _root.baseObj._xscale = _root.baseObj._yscale=display;
};


매번말하는것이지만 복잡해보일때는 하나하나 써가며 계산을 해보면 답이나옵니다.

일단 calculateDistance() 를 정의하고  그밑에 onEnterFrame 에서 함수를 호출합니다
먼저시스템 흐름상 위에서부터 실행이되지만 위부분은 함수 정의부분이므로 그냥 지나치고 밑의부분이 실행이됩니다
그러니

this.onEnterFrame = function() {
        display = Math.floor(calculateDistance(baseObj._x, baseObj._y, _root._xmouse, _root._ymouse));
        _root.baseObj._xscale = _root.baseObj._yscale=display;
};

요기부터 설명하겠습니다
이벤트는 enterFrame 이므로 계속실행해라
display는 어쩌구 저쩌구~
display 변수는 다이나믹 변수 이므로 어쩌구저쩌구 에서 나오는 값이 대입이됩니다 그러니 다이나믿 텍스트에 출력이 되는것입니다


Math.floor(calculateDistance(baseObj._x, baseObj._y, _root._xmouse, _root._ymouse));


Math.floor 은 바닥값입니다 (나온값의 가장작은정수 ex 4.9 --> 4 )
그러니 calculateDistance(baseObj._x, baseObj._y, _root._xmouse, _root._ymouse) 함수를 호출하여나온값의 정수를 만들어라 입니다
함수를 호출하면서 4개의 아규먼트를 보냅니다 (무비클립의 x좌표,무비클립의 y좌표,마우스x좌표,마우스y좌표)

그럼이제 함수부분으로 가겠습니다


function calculateDistance(baseX, baseY, movingX, movingY) {
        diffX = movingX-baseX;
        diffY = movingY-baseY;
        return  Math.sqrt(diffX*diffX+diffY*diffY);
}


매개변수를 받아서 그값으로 계산을 합니다 여기서는 말로 설명하기는 힘들어소 그림으로 설명을 드리겠습니다(처음으로 그림으로 설명드리네요^^)



만약 마우스와 무비클립이 그림같은 위치에 있다면
diffX = movingX-baseX;         //diffX 는 둘사이의 x 거리를 나타내며
diffY = movingY-baseY;        //dissY는 둘사이의 y거리를 나타냅니다
그리고
return  Math.sqrt(diffX*diffX+diffY*diffY);  

return 은 나온값을 다시 되돌린다는 뜻입니다 그러니 함수를 호출한 데로 값을 전달하는것입니다

Math.sqrt(diffX*diffX+diffY*diffY);  

Math.sqrt은 제곱근을 계산하는것입니다 여기서 피타고라스의 정리가나옵니다(설마 기억안나시는분없겠죠^^)
삼각형이 직각일때 한변의길이제곱 + 다른한변의길이제곱 = 빗변의길이제곱
간단하죠^^
아무리복잡해도 이런식으로 계산하다보면 답이보입니다
물론 많이 복작한것은 좀힘들겠지만^^
이제그만 작업을해야겠네요~
모두모두 즐거운 하루~

출처 : http://www.flasia.co.kr/old/homeV2.0/index.htm 권용재 님의 글입니다.

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
24  Flash CS4 새로운 클래스 FileReference.save()   member 웹돌이 0 / 0 7428 2008-11-01
23  setRGB() 메서드 사용법   member 울트라마 0 / 0 2683 2008-01-28
22  FLEX, FLASH 강추 ActionScript 3.0 한글 메뉴얼   member 오렌지 0 / 0 2935 2007-11-28
21  톰캣+아파치+Flex 설치하기   member 오렌지 0 / 0 5019 2007-10-10
20  피타고라스를 이용한 거리계산 이미지   member 웹돌이 0 / 0 4216 2007-10-06
19  For 문으로 버튼에 액션주기   member 웹돌이 0 / 0 3056 2007-10-02
18  xml 을 이용하여 메뉴 동적으로 만들기   member 웹돌이 0 / 0 4753 2007-10-01
17  프레임 진행상태 확인하기!   member 웹돌이 0 / 0 2611 2007-09-29
16  로딩바 만들기 (root) 이미지   member 웹돌이 0 / 0 4614 2007-09-19
15  액션스크립트의 개념 이미지   member 웹돌이 0 / 0 2602 2007-09-17
14  투명플래쉬 팝업   member 오렌지 0 / 0 4254 2007-08-31
13  메뉴보다 빠른 단축키(Hot Key)   member 오렌지 0 / 0 2947 2007-08-31
12  Full 플래쉬 사이트 만들때 주의할점!   member 오렌지 0 / 0 2803 2007-08-31
11  시작시 랜던한 프레임으로 가기   member 오렌지 0 / 0 2601 2007-08-31
10  특정프레임에서 액션스크립트 추가!   member 오렌지 0 / 0 2801 2007-08-31
9  VISTA에서 FLASH8 심볼 편집시 느려지는 버그 해결방법 이미지   member 오렌지 0 / 0 2523 2007-08-31
8  플래쉬 CS3 의 주요기능! 이미지   member 오렌지 0 / 0 3154 2007-08-31
7  플래쉬 그림판 소스   member 오렌지 0 / 0 3714 2007-08-31
6  플래쉬 액션스크립트 모음   member 오렌지 0 / 0 3849 2007-08-30
5  플래쉬 초간단팁! 일정시간 멈췄다가 진행하기!   member 오렌지 0 / 0 2719 2007-08-21
4  간단하게 플래쉬에서 팝업띄우기 이미지   member 오렌지 0 / 0 3252 2007-08-17
3  플래쉬에서 특정 무비클립 프린트하기 이미지   member 오렌지 0 / 0 2998 2007-08-16
2  플래쉬에서 마우스 모양 바꾸기 이미지   member 오렌지 0 / 0 4140 2007-08-16
1  플래쉬 슬라이딩 엔진 이미지   member 오렌지 0 / 0 3011 2007-08-14
write