본문 바로가기

플래시 자주 쓰는 액션스크립트 간단 정리

반응형


출처 - http://blog.naver.com/minsss74/80047902918  

[액션스크립트]

... 액션스크립트란
         플래시의 다이나믹한 표현을 위한 언어로
         사용자가 제자한 무비에 더 극적인 효과를 전달할 수 있다.

** 인터프리터 언어:
     소스 해석기가 해석해서 바로바로 컴퓨터에 실행할 수 있도록 도와줌.
     소스 수정후 바로 수정 가능 - 느리다.

** 컴파일러 언어:
      프로그램이 실행이 되려면 기계어로 변환작업을 해주어야 한다.
      컴파일 언어는 기계어로 되어 있다 (수정할때마다컴파일)  -  빠르다.


[액션스크립트의 구성요소]

... 객체, 속성, 메서드, 함수, 이벤트핸들러, 변수, 연산자, 배열,
    조건문, 순환문, 선언문 등

1. 객체 :
     . 데이터를 갖고 있는 집합체
     . 객체는 다양한 메서드와 속성을 갖는다.

2. 속성 : 객체에 대한 특성

3. 메서드 : 객체를 다루는 명령어

4. 함수 :
     . 특정 연산을 처리하는 코드
     . 함수를 정의된 선언문 및 메서드는 
       언제든지 호출하여 사용할수 있다.

5. 이벤트 핸들러
     . 무비에 특정 상황이 일어났을 때 인터프리터에게 전달.

6. 변수 : 변하는 수. 기억장소. 값을 저장하거나 변경 또는 삭제.

7. 연산자 : 연산을 수행하기 위한 기호

8. 배열 : 이름이 같은 변수가 여럿 붙어 있는 것.

9. 조건문 : 어떤 조건을 기준으로 결과의 true, false에 따라
               다음 구문을 선택 실행하게 된다.

10. 순환문 : 주어진 조건이  참일 동안 반복하는 문장.

11. 선언문 : 플래시내에서 사용하는 인터프리터형 문장. 액션으로 이루어진 문장.


[액션스크립트의 유형]

1. 프레임액션
    .. 메인 타임라인상에서 특정 프레임을 선택하여 액션을 기술.
    .. 액션 패널의 현재 액션 대상에 Frame 이라고 나타남.
    .. 해당 프레임에 키프레임(blank 포함)이 있어야 한다.
    .. 해당 프레임에 존재하는 모든 오브젝트에 대하여 관여한다.
    .. playhead가 진행되면서 액션을 실행하는 것. Frame rate에 직접적 영향 받는다.
    .. 예

                        aaa = 1;
                        bbb_mc.onEnterframe = function() {
                             this._x += aaa ;
                        }
   
2. 버튼 액션
    .. 버튼 심벌을 선택하여 액션을 기술해 준다.
    .. 액션 패널의 현재 액션 대상에 Button 이라고 나타남.
    .. 특정 이벤트가 발생했을  때 액션을 실행한다.
    .. 이벤트를 받아들이기 위해 버튼 이벤트 핸들러를 사용해야 한다.
   
       on(발생할 이벤트) {
            실행할 액션
       }

     .. 예

                        on(press) {
                       var aaa = 1;
                      _root.bbb_mc._x += aaa;
                 }

    .. 인스턴스 이름이 부여된 버튼심벌은
       버튼이벤트핸들러 메서드 방식을 사용하여 제어한다.

                         ccc_btn.onPress = function() {
                            var aaa = 1;
                            _root.bbb_mc._x += aaa;
                         }

3. 무비클립 액션
    .. 무비클립심벌을 선택하여 액션을 기술해 준다.
    .. 액션 패널의 현재 액션 대상에 Button 이라고 나타남.
    .. 무비클립 액션은 해당 무비클립이나 다른 무비클립에 대해 제어한다.

       onClipEvent(발생할 이벤트) {
           실행할 액션
       }

    .. 인스턴스 이름이 부여된 무비클립심벌은
       무비클립이벤트핸들러 메서드방식으로 제어 가능.

                         kkk_mc.onEnterFrame = function() {
                             this._x += 10;
                      if(this._x > 500) {
                          this._x = 0;
                             }
                         }


[스크립트의 흐름]

1. playhead의 흐름을 따른다.

    1프레임액션 :
                         c = 0;
    1프레임액션 :
                         b = 1+ c;
    2프레임액션 :  
                         a = 1;
    3프레임액션 :  
                         c = 1+ b;
                         trace(a+b);
    gotoandPlay(2);

2. 프레임에서 위에서 아래로 흐른다.

     1프레임액션 :
                         c = 0;
                         b = 1+ c;
                         a = 1;
                         c = 1+ b;
                         trace(a+b);      
     단일프레임에서는 playhead가 정적상태여서 1회만 재생

.. 이벤트 핸들러 메서드를 사용하여 값을 계속 출력할 수 있다.
                          c = 0;
                          _root.onEnterFrame = function() {
         b = 1+ c;
                              a = 1;
                              c = 1+ b;
                              trace(a+b);
                          }
3. 조건문과 순환문에서 조건식의 참값일 경우쪽으로 흐른다.

4. 예 : 자동차가 왼쪽에서 오른쪽으로 이동.
          사라지면 왼쪽에서 다시 나타나서 이동.
   자동차는 한대이고 계속 움직임.

5. 예 : 자동차가 왼쪽에서 오른쪽으로 이동.
          나무가 한그루 있고
   나무는 자동차와 반대 방향으로 진행하며
   자동차와 진행 속도에 차이가 있고
   사라지면 반대편에서 다시 나온다.


[표현식]

1. 데이타형

    ... 문자형
          . 따옴표로 묶어 표기.
          . 문자열 연결 연산자 : +

                      "1234567"
        "50" + 89
        "액션스크립트"
        "액션" + " 123"
        '액션" + " 123'
                      "액션\" + \" 1\'2\'3"

    ... 숫자형
                      23
        0.456
        .667
                      최대값 : Number.MAX_VALUE
               최소값 : Number.MIN_VALUE

    ... 부울형
          . 참(1, true), 거짓(0, false, 문자) 의 두 값만을 가지는 데이타

                      aaa = 0;
                      if(aaa) {
                       trace ("참");
                      }else {
                       trace ("거짓");
                      }

    ... undefined
          . 초기값이 없는 변수

    ... null
          . 사용자가 직접 대입해주어 특정 이벤트를 중지시킬때 쓴다.

                     up_btn.onRollOut = function() {
                  this._parent.text_mc.onEnterFrame = null;
                     }

3. 연산자

    ... 숫자연산자 : +, -, *, /,
                         ++(1증가 연산자)      i++;
    --(1감소 연산자)      i--;
    %(나머지 구하는 잉여 연산자)

                             aaa = 10 % 3;
               trace(aaa);

    ... 비교연산자 : 조건식에 사용하는 연산자
                         >, <, >=, <=

                         trace(50 > 47);

    ... 논리연산자 : &&(AND), ||(OR), !(NOT)
                          AND : 양변이 모두 참일 경우 결과가 참값.
     OR : 양변중 한쪽만 참이어도 결과가 참값.
                          NOT : 논리값을 반대로 바꾼다.

    aa = 20;
                         bb = 30;
                         if(aa>bb && (cc=aa+bb)) {
                     trace("true");
                         }else {
                     trace(false);
                         }


                         aa = 20;
                         bb = 10;
                         if(aa>bb || bb>0) {
                     trace("true");
                         }else {
                     trace(false);
                         }


                         a_btn.onPress = function() {
                     Onoff = !Onoff;
                     if (Onoff) {
                       _root.btn._visible = 0;
                     } else {
                  _root.btn._visible = 1;
                     }
                         };

    ... 항등연산자 : == (양변의 값이 같으면 결과가 참값)
                         !=  (양변의 값이 달라야 결과가 참값)


    aaa = "액션";
                         bbb = "스크립트";
                         if (aaa != bbb) {
                      trace(aaa+bbb+"참");
                         } else {
                      trace(aaa+bbb+"거짓");
                         }

    ... 대입연산자 :
                         =      우변의 결과를 좌변에 넣으라.      
    +=      a += 5;   
    -=      a -= 5;
    *=      a *= 5;
    /=      a /= 5;
    %=     a %= 5;

 

 

 

 

 

 

 

 


[무비클립 이벤트핸들러 메서드]319

         이벤트가 발생하는 시점

onEnterFrame ----- playhead가 움직이기 시작할 때
onLoad ----- playhead에 의해서 무비와 닿았을 때
onUnload ----- 무비가 스테이지에서 사라질 때
onData ----- 외부데이타(swf)가 로딩되었을 때
onMouseDown ----- 마우스 왼쪽 버튼으로 눌렀을 때
onMouseUp ----- 마우스 떼었을 때
onMouseMove ----- 마우스 움직였을 때
onKeyDown ----- 키보드 눌렀을 때
onKeyUp ----- 키보드 떼었을 때
onDragOver ----- 마우스 누른채 벗어났다 돌아왔을 때
onDragOut ----- 마우스 누른채 벗어났을 때
onPress ----- 마우스 누르는 순간
onRelease ----- 마우스 눌렀다가 떼는 순간
onReleaseOutside ----- 마우스 누른채로 벗어나서 떼었을 때
onRollOver ----- 마우스 닿는 순간
onRollOut ----- 마우스 닿았다가 벗어나는 순간
onSetFocus ----- 포커스가 설정될 때
onKillFocus ----- 포커스가 옮겨질 때


[버튼 이벤트핸들러 메서드]252


onPress ----- 마우스 누르는 순간
onRelease ----- 마우스 눌렀다가 떼는 순간
onReleaseOutside ----- 마우스 누른채로 벗어나서 떼었을 때
onRollOver ----- 마우스 닿는 순간
onRollOut ----- 마우스 닿았다가 벗어나는 순간
onDragOver ----- 마우스 누른채 벗어났다 돌아왔을 때
onDragOut ----- 마우스 누른채 벗어났을 때
onSetFocus ----- 포커스가 설정될 때
onKillFocus ----- 포커스가 옮겨질 때
onKeyPress ----- 포커스가 설정된 상태에서 키보드 눌렀을 때
onKeyUp -----  포커스가 설정된 상태에서 키보드 떼었을 때
 

반응형