베스트 키워드
주간 월간 연간
검색  상세검색
이벤트 디자이너를 위한 디자인 세상 아사달이 만들어갑니다.
디자인센터 보유 현황 오늘어제이번달지난달누적
웹기획
HTML 사용법
포토샵 사용법
일러스트 사용법
플래시 사용법
일러스트 만들기
편집사진 만들기
사물 편집사진 만들기
플래시 모션 만들기
플래시 스크립트 만들기
    - 액션스크립트 기초
    - 함수
    - for문 이해하기
    - Load 무비
    - 배열
웹구성 요소 만들기
웹 페이지 만들기
비즈니스 홈페이지 만들기
생활 홈페이지 만들기
쇼핑몰 홈페이지 만들기
액션스크립트 기초
Home > 디자인 센터 > 웹강좌 > 플래시 스크립트 만들기 > 액션스크립트 기초
메서드 콜백함수 계층구조의 이해 무비클립 속성 설정 onClipEvent 핸들러 1
onClipEvent 핸들러 2 if문 1 if문 2 startDrag 1 startDrag 2
부드러운 움직임

지금까지 제작한 무비는 액션스크립트를 버튼이나 프레임에 적었습니다. 하지만 무비클립에도 액션스크립트를 적을 수 있습니다. 버튼에 액션을 적을 경우 항상 on 핸들러 속에 넣어야 하고, 무비클립에 액션을 적을 경우 항상 onClipEvent 핸들러 속에 넣어야 합니다. onClipEvent 핸들러가 다루는 이벤트는 ‘load', 'enterframe', 'mouseMove', 'keyDown'등이 있습니다.
onClipEvent(이벤트)
    실행할 액션스크립트
}
① 이벤트 종류
매서드 설명
load 무비클립이 처음 실행될 때 발생하는 이벤트입니다. 즉, 무비클립이 로드되거나 무비클립이 있는 프레임으로 플레이 헤드가 이동할 때 발생합니다. 무비클립의 초기화에 관련된 부분이나, 메서드를 정의할 때는 load 이벤트를 사용합니다.
unload 무비클립이 타임라인에서 제거된 다음 첫 번째 프레임에서 발생하는 이벤트입니다. unload 이벤트와 관계된 액션들은 해당하는 프레임에 있는 어떤 액션들보다 먼저 실행됩니다.
enterFrame 매 프레임마다 발생하는 이벤트입니다. enterFrame과 관계된 액션들은 해당하는 프레임에 있는 다른 액션들이 모두 실행된 다음 실행됩니다. Movie의 초당 프레임 속도가 12로 설정되면 1초에 12번 실행되고 24로 설정되면 1초에 24번 실행됩니다.
mouseMove 마우스가 움직일 때마다 발생하는 이벤트입니다. 마우스의 움직임에 반응하는 무비클립을 만들 때는 enterFrame 이벤트보다 mouseMove 이벤트를 사용하는 것이 컴퓨터의 부하를 덜어줍니다.
mouseDown 마우스의 왼쪽 버튼이 눌러질 때 발생하는 이벤트입니다.
mouseUp 마우스의 왼쪽 버튼을 눌렀다가 놓을 때 발생하는 이벤트입니다.
keyDown 키보드를 누를 때 발생하는 이벤트입니다. key.getCode 메서드를 이용하면, 마지막으로 누른 키보드의 정보를 얻어올 수 있습니다.
keyUp 키보드를 눌렀다가 놓을 때 발생하는 이벤트입니다. 물론 key.getCode 메서드를 이용하면, 마지막으로 누른 키보드의 정보를 얻어올 수 있습니다.
Data loadMovie나 loadVariable 액션을 통해 data를 받을 때 발생하는 이벤트입니다. loadVariable 액션을 사용할 경우에는, 데이터 일부분이 호출될 때마다 반복적으로 data 이벤트가 발생합니다.

<예>
onClipEvent(load){
    _root.car._x = 100;
    _root.car._y = 100;
}
load 이벤트를 사용하여 처음 시작할 때 x 및 y의 위치를 모두 100으로 위치하도록 설정하였습니다.
onClipEvent(enterFrame){
    _root.car._x = _root.car._x +2;
}
위 소스는 매 프레임마다 x의 위치를 2만큼씩 증가하도록 입력하였습니다. 여기에서 enterFrame을 사용한 이유를 아시겠죠?

② load 이벤트에 speed라는 변수 설정하기
onClipEvent(load){
speed = 2;
}
onClipEvent(enterFrame){
this._x = this._x + speed;
}
위 액션스크립트는 “무비가 시작할 때(load 이벤트) speed라는 변수에 2를 대입하고, 매 프레임마다 speed 만큼씩 자신의 x 좌표를 이동시키라”는 뜻입니다.

여기에서 this가 나오죠? this는 자신 또는 무비클립 이라고만 생각해두시면 됩니다.

여기에서 아주 중요한 부분이 있습니다. 바로 “변수”입니다.
변수란, 말 그대로 변할 수 있는 값을 가진다는 뜻입니다. 즉 변수를 정하고 변수에 값을 지정해 놓은 후에 그 변수를 꺼내서 사용할 수 있습니다.

여기에서 주의할 점은 변수이름은 플래시에서 미리 정한 예약어를 제외한 다른 이름을 적어야 하고 변수의 첫 글자는 숫자나 특수문자로 시작하면 안 됩니다.

speedX, speedY 는 변수의 이름으로 가능하며 _x, _y, if, 1speed 등은 변수의 이름으로 불가능합니다. 여기에서 1speed가 변수의 이름으로 안 되는 이유는 아시겠죠?

onClipEvent(load){
speed = 2;
onClipEvent(enterFrame){
this._x = this._x + speed;
}

* 알아주기
플래시를 처음 다루는 분들은 load, 이벤트, enterFrame 등이 어렵게 느껴질 수도 있습니다. 이벤트란 쉽게말해'사건'이라는 뜻입니다. 예를 들어 사람을 하나의 무비클립으로 간주하고 사람의 일생을 이벤트에 맞춰 살펴봅시다.사람이 태어나는 사건은 오직 한 번만 발생하고 태어나면서 이름, 성별 등은 한 번만 설정됩니다.(도중에 이름을 바꾸는 경우는 제외) 반면 사람이 숨을 쉬는 일은 매 초마다 이루어져야 하고 밥을 먹는 일은 하루에 세 번씩, 잠은 하루에 한 번씩 이루어져야 합니다. 그리고 걸어갈 때는 매 순간마다 다리를 앞으로 뻗어야 하고 밥을 먹을 때는 밥을 퍼야합니다. 플래시도 우리의 일상생활과 동일하다고 생각하면 됩니다.예를 들어 태어나는 일과 같이 오직 한 번만 해야 할 작업은 load 이벤트에 적어주고, 숨을 쉬는 일처럼 계속 반복되는 일은 enterFrame 이벤트에 적어서 매 프레임마다 반복시켜주면 됩니다.

사이트명 : 아사달닷컴 | 회사명 : (주)아사달 | 대표이사 : 서창녕 | 대표전화 : 02-2026-2000 | 팩스번호 : 02-2026-2008
사업자등록번호 : 206-81-24351 | 법인등록번호 : 110111-1940504 | 통신판매업신고 : 제18-890호 | 벤처확인번호 : 051134532200563
(우편번호 : 153-803) 서울특별시 금천구 가산동 371-28번지 우림라이온스밸리 A동 8층 (주)아사달
Copyright ⓒ asadal.com All rights reserved.
아사달 이용 가능 브라우저