scaleform.minarto.com

[강좌] AS3.0 의 Document Class 를 이용한 작업 본문

ActionScript

[강좌] AS3.0 의 Document Class 를 이용한 작업

미나토 2008. 1. 17. 11:07



회사에서 교육을 위해 강의 자료를 만들고 있는 중... 졸립고 귀찮다. 어차피 회사 내 플래시 개발자는 나랑 부사수 뿐인데...


////////////////////////////////////////////




AS3.0 의 Document Class 를 이용한 작업

1. AS2.0 까지의 개발 방법


타임라인 애니메이션이 없는 어플리케이션을 플래시로 제작할 때 대부분의 개발자는 원프레임 개발을 한다. 플래시의 타임라인에 있는 1 프레임만을 사용한다고 해서 불려지는 이름이다.

타임라인을 이용한 개발은 메뉴나 에니메이션과 같이 모션이 들어가 있어서 프레임을 이용한 개발이 더 효율적일 때나 사용하게 된다.
이런 상황 이외에는 대부분 원프레임 개발을 한다.

그 이유는 타임라인이라는 것은 일반적인 랭귀지의 순차실행이 아닌 시간이라는 요소가 영향을 끼치기 때문이다. 그러다 보면 클라이언트 PC 에 따라 그 시간이라는 요소가 불규칙 적일 수 있고 어떠한 이벤트 발생을 예측하기가 어려워진다.
그리고 타임라인 이라는 요소는 ActionScript 란 언어(이하 AS) 만의 고유한 특징으로 다른 쪽 개발자가 이해하기가 어렵다.


그리고 플래시 라이트(모바일용 플래시) 보다야 덜하지만 플래시 어플리케이션의 규모가 커지면서 그 성능과 최적화가 중요요소로 자리잡게 되면서 메모리를 잡아먹을 필요없는 자원은 과감히 버려야 할 필요가 있게 되었다.


as2.0까지의 기존의 방식대로 타임라인에 메인 파일을 인클루드하여 사용하는 방법은 결과물이 MovieClip Class 로 생성된다. as 2.0의 플래시 플레이어 자체가 커다란 무비클립으로 이루어져있기 때문이다.
타임라인이라는 것은 MovieClip Class 에 들어있는 기능이고 지금까지의 개발은 사용하지도 않는 타임라인 관련 메소드와 속성을 어플리케이션에 담아왔다고 할 수 있다.


이제는 그것을 버려야 할 때가 왔다.





2. Document Class 를 사용하는 방법


일단 기우에서 먼저 말하자면 Document Class는 개인이 만들어낸 메인 파일이지 어떠한 내장 클래스가 아니다. 자바의 Main 파일을 생각하면 된다

Document Class 는 보통 Sprite Class 를 상속받아서 사용한다. Sprite Class 는 MovieClip Class 의 부모 클래스로서 타임라인이 빠진 무비클립이라고 생각하면 이해하기가 쉽다.
Sprite Class 는 다음과 같은 상속 관계를 가진다

MovieClip Class > Sprite Class > DisplayObjectContainer > InteractiveObject > DisplayObject

DisplayObject : 클라이언트가 눈으로 보게 되는 화면을 이루는 모든 종류의 객체
InteractiveObject : DisplayObject 중 마우스와 키보드이벤트에 반응하는 객체
DisplayObjectContainer : 자신 안에 다른 DisplayObject 를 담을 수 있는 객체 (무비클립 안에 다른 무비클립, 그래픽심볼, 텍스트 필드가 들어가 있듯이...)

어플리케이션은 일단 눈으로 보여야 하고 사용자의 입력장치에 반응해야 하며 안에 무언가는 담겨 있어야 하니 기본적으로 Sprite Class 를 사용하게 되는 것이다. 당연히 타임라인을 사용할 일이 생기면 MovieClip Class 를 상속받아서 만들면 된다


기본적으로 다음과 같이 시작하게 된다.


package    // 패키지 경로
{
    import flash.display.Sprite; // Sprite class 를 사용하기 위하여 클래스 임포트

    public class Main extends Sprite // Sprite class 를 상속받은 Main 클래스
    {
        public function Main() // Main 클래스의 생성자
        {
            trace("welcome to AS3.0"); // 아웃풋 창에 "welcome to AS3.0" 문자열 출력
        }
    }
}


이렇게 만들어놓고 Main.as 라는 파일명으로 저장하면 된다. 이걸 컴파일 해서 swf 파일로 만들어보자


flash 에서 File > New 클릭
팝업으로 뜨는 New Document 창에서 맨 위의 Flash File (ActionScript 3.0) 더블클릭 후 Main.fla 로 저장
새로 만들어진 문서의 아래쪽 Properties 탭에서 비어있는 Document Class 에 위에 저장해 놓은 파일명인 Main 라고 기입
Control > Test Movie 로 컴파일하여 Main.swf 파일 생성

이렇게 하면 아웃풋창이 뜨면서 "welcome to AS3.0" 를 확인하게 된다. 드디어 Main.swf 란 어플리케이션을 만들게 되었다.


p.s. package 의 경로를 설정하였다면 Properties 탭에도 똑같이 쓰면 된다.

예를 들어

package com.minarto.app
{
    import flash.display.Sprite;

    public class Main extends Sprite
    {
    }
}



이렇게 만들었다면 Properties 탭에 com.minarto.app.Main 이라고 쓰면 된다.