@ "액션스크립트의 기본 원리 이해하기"에서 만들었던 플래쉬의 단점 : 오른쪽으로 이동하는 공이
멈추지 않는다. 특정 위치까지만 움직이도록 하기 위해서는 어떻게 해야할까?
1. 300픽셀정도까지만 움직이고 멈추게 하기 (플래쉬의 크기가 550×400 일
때)
1번 프레임의 액션을 다음과 같이 해 주면
됩니다.
_root.car._x = _root.car._x + 2; 를
if(조건){ } 안에 넣은 것입니다. 여기서의 조건은
"무비클립의 x좌표가 300보다 작다"는 것입니다.
그러니까 무비클립의 x좌표값이 10 이면 300보다 작기 때문에
if문({}안에 들어 있는 내용 -
x좌표를 2 증가시키라는 명령)을 실행하게 됩니다.
setInterval에 의해 0.025초 후에 다시
go함수가 실행됩니다. 또 다시 if문을 검증하게 되고 300보다
작으면 if문을 실행합니다. 이렇게
계속 x좌표값이 커져서 298까지 되었다고 합시다. 역시 300보다
자기 때문에 2를 증가시키게
됩니다. 이제 드디어 300이 되었습니다. setInterval에
의해 0.025초 후에 다시 if문의 조건을
따집니다. 300은 300보다 작지 않기 때문에(같은 값이죠. ^^)
if문을 실행하지 않습니다. 즉,
x좌표를 2만큼 증가시키라는 명령을 수행하지 않는 거죠. 따라서
무비클립은 300이라는
자리에서 움직이지 않고 가만히 있는 것입니다.
매우 기초적이면서도 엄첨 중요한 개념입니다. if문만 제대로 이해를 해도 웬만한 모션은 다
표현할 수 있습니다. 제대로만 이해하면.... ^^
2. 300픽셀정도까지만 움직이다가 300픽셀이 넘으면 원래자리(x좌표가 10인 자리)로
이동시키기
1번 프레임의 액션을 다음과 같이 해 주면
됩니다.
무비클립의 x좌표값이 300보다 작으면 x좌표값을 2씩 더해주고 그렇지
않으면(else) 무비클립의
x좌표 값을 10인 위치에 놓아라. 뭐, 그런 내용입니다.
(setInterval이라는 명령어에 의해 0.025초
마다 go함수를 실행시켜 주기 때문에 0.025초마다 2씩 더해주는 것입니다.
setInterval이라는
명령어를 이용해 주기적으로 go함수를 실행시켜주지 않으면 무비클립은 움직이지
않습니다.)
위 스크립트를 적용해서 실행(Ctrl+Enter)시켜 보면 자동차가 오른쪽으로 가다가
순간적으로
원래 자리로 다시 가고 다시 오른쪽으로 가다가 순간적으로 원래 자리로 돌아가고를
계속해서
반복할 것입니다. 왜 그렇게 되는지는 본인 스스로 생각해 보시길 바랍니다. ^^
이러한 문제점을 다음 강좌에서 해결해 볼 생각입니다. 사용자가 마우스를 클릭하면
움직이고
어느 지점에 도착하면 원래 자리로 가서 정지해 있는 겁니다. 또 마우스를 클릭하면
움직이고...
이 정도는 되어야 사용자와 조금은 상호작용이 있다라고 할 수 있습니다. ^^
1. 무비클립을 조금씩 아래로 움직이게 하다가 어느 지점 이상이 되면 원래 자리로
되돌아 가게
한다. (힌트 : _y)
2. 무비클립을 조금씩 작아지게 하다가 10픽셀보다 작아지면 사라지게 한다. (힌트
: _widht,
_height, _visible)
3. 무비클립을 조금씩 작아지면서 회전하다가 크기가 10픽셀보다 작아지면 조금씩 흐려지다가
사라진다. ( 힌트 : _width,
_height, _alpha)
#제대로 배워 보고 싶으신 분은 반드시 과제를 해 보시기 바랍니다. 잘 안되면 덧글로 질문하세요. 힌트를 더
드리겠습니다. 만든 swf파일을 "과제 제출방"에 올려 주세요. ^^ |