Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- watch
- 샌프란시스코
- DataBinding
- 수학정석
- as2
- 강좌
- addChild
- scaleform4
- flash cs3
- as3
- flash
- flash player 10
- MMOKit
- CLIK
- GDC
- 집합의 연산
- scaleform
- 태그클라우드
- Document Class
- 애드온
- KGC 2013
- 형변환
- ApplicationDomain
- as3.0
- 클릭
- scaleform3
- Chart
- 플래시
- 스케일폼
- autodesk
Archives
- Today
- Total
scaleform.minarto.com
[강좌] AS3.0 의 Document Class 를 이용한 작업 본문
회사에서 교육을 위해 강의 자료를 만들고 있는 중... 졸립고 귀찮다. 어차피 회사 내 플래시 개발자는 나랑 부사수 뿐인데...
////////////////////////////////////////////
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" 문자열 출력
}
}
}
{
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
{
}
}
{
import flash.display.Sprite;
public class Main extends Sprite
{
}
}
이렇게 만들었다면 Properties 탭에 com.minarto.app.Main 이라고 쓰면 된다.