베스트 키워드
주간 월간 연간
검색  상세검색
이벤트 디자이너를 위한 디자인 세상 아사달이 만들어갑니다.
디자인센터 보유 현황 오늘어제이번달지난달누적
웹기획
HTML 사용법
포토샵 사용법
일러스트 사용법
플래시 사용법
일러스트 만들기
편집사진 만들기
사물 편집사진 만들기
플래시 모션 만들기
플래시 스크립트 만들기
    - 액션스크립트 기초
    - 함수
    - for문 이해하기
    - Load 무비
    - 배열
웹구성 요소 만들기
웹 페이지 만들기
비즈니스 홈페이지 만들기
생활 홈페이지 만들기
쇼핑몰 홈페이지 만들기
함수
Home > 디자인 센터 > 웹강좌 > 플래시 스크립트 만들기 > 함수
함수의 이해 일차함수 메뉴 구조 무비클립 복제 prototype을 이용한 함수의 이해 만들기
CPU 점유율 조절하기

① 함수 선언하기
함수의 함은 상자라는 뜻으로 상자에 a, b를 넣으면 그 결과가 c로 반환되는 것을 말합니다. 여기에서 함수에 입력되는 a와 b는 매개 변수라 부릅니다. 함수를 선언하는 형식은 다음과 같습니다.
function 함수명(매개변수){
실행할 액션들;
return 반환값;
}

여기에서 매개변수란 함수에 전달하는 변수를 말합니다. 예를 들어 믹서기에 오렌지와 사과를 넣으면 주스가 만들어 진다고 가정합시다. 여기에서 오렌지와 사과는 매개변수가 되고 주스가 반환 값이 됩니다. 매개변수가 2개 이상일 경우 ,(콤마)로 구분하며 반환값은 매개변수를 처리한 결과물입니다.
‘return’이라는 뜻이 ‘반환하다. 보답하다’의 뜻이므로 결과값을 반환하는 예약어로 사용된 것입니다.

function rectArea(x,y){
var area = x*y;
return area;
위 함수는 x와 y를 매개변수로 받아서 두 값을 곱한 결과를 area라는 변수에 대입한 다음, 결과 값을 반환한 것입니다. 여기에서 area 앞에 var이라고 적은 것은 area라는 변수를 지역변수로 사용하겠다는 뜻입니다. 함수에서 사용하는 변수의 경우 var를 붙이지 않으면, 함수가 끝난 다음에도 그 변수가 계속 남아있기 때문에 불필요하게 메모리를 사용하게 됩니다. 따라서 함수 내에서만 사용하는 변수의 경우에는 가능한 var를 선언하는 것이 좋습니다.

② 함수 호출하기
변수 = 함수의경로명.함수명(매개변수);
일반적으로 함수가 return에 의해 값을 반환하는 경우에는 그 반환 값을 다른 변수에 대입하게 됩니다. 이렇게 함수를 사용하는 것을 ‘함수를 호출한다’라고 말합니다.
여기에서 함수의 경로명은 함수가 선언된 무비클립의 경로명을 뜻합니다. 예를 들어 메인타임라인(_root)에 func1이라는 함수명으로 선언된 함수를 호출할 경우에는 '_root.func1(매개변수)‘라고 적으면 되고, 메인 타임라인(_root)의 ’bird'라는 무비클립에 func2라는 함수명으로 선언된 함수를 호출할 경우에는 ‘_root.bird.func2(매개변수)’라고 적으면 됩니다. 즉 함수의 경우에도 변수와 같이 함수가 선언되어 있는 무비클립이 함수의 주인이 되므로, 함수를 호출할 경우에는 반드시 함수의 주인이 되는 무비클립 경로명을 함께 적어야 합니다.

메인 타임라인(_root)에 'rect.Area'라는 함수를 이용해서 가로20, 세로6인 사각형의 넓이를 구해서 그 결과를 myArea에 저장하는 스크립트를 작성해봅시다.
myArea = _root.rectArea(20, 6);
② 눈 내리는 함수 만들기
함수를 이용하여 눈 내리는 플래시를 만들어보겠습니다. 함수를 이용하여 어떠한 효과를 낼 수 있는지 각자 만들어봅시다.
※ ‘snow_mc’라는 무비클립을 만들고 1프레임에 아래의 소스를 삽입해봅시다.
depth = 0;

function makeSnow(){
    _mc = snow_mc.duplicateMovieClip("snow_mc" + depth, depth);
    _mc._x = random(550);
    _mc._y = -10;
    _mc._width = _mc._height = 2 + random(8);
    _mc.xSpeed = (-20 + random(41)) / 10;     // -2~2
    _mc.ySpeed = 2 + random(5);         // 2~6
    
    _mc.onEnterFrame = function(){
        this._x = this._x + this.xSpeed;
        this._y = this._y + this.ySpeed;
        if(this._y > 400){
            this.removeMovieClip();
        } // if
    }; // onEnterFrame
    depth++;
} // makeSnow

this.onEnterFrame = function(){
    for(i=0; i<8; i++){
        makeSnow();
    } // for
}; //onEnterFrame
③ 떨어지는 별 만들기
동일한 방법으로 별 무비클립을 만든 후에 아래 스크립트를 삽입해봅시다.
// 모든 변수는 init에 선언합니다.
// initialize : 초기화 하다.. :: init
function init(){
    depth = 0;
}


function makeStar(){
    // 1. 복제
    _mc = star_mc.duplicateMovieClip("srar_mc" +depth, depth);
    // 2. 초기설정
    _mc._x = random(550);
    _mc._y = -20;
    _mc.ySpeed = 3 + random(6);
    // 3. 매 프레임마다 할 일
    _mc.onEnterFrame = function(){
        this._y = this._y + this.ySpeed;
        this._rotation = this._rotation + 5;
        if(this._y > 400){
            this.removeMovieClip();
        } // if
    } // onEnterFrame
    // 4. 다음번 복제를 위해 depth 1 증가
    depth++;
}

// 가끔씩.... makeStar() 호출
this.onEnterFrame = function(){
    if( random(50) == 0 ){
        makeStar();
    }
}
init();
사이트명 : 아사달닷컴 | 회사명 : (주)아사달 | 대표이사 : 서창녕 | 대표전화 : 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.
아사달 이용 가능 브라우저