Flash CS3 가 출시되고 AS3.0 이 널리 퍼지고 있는 요즘

Document Class 에 대한 문의가 많은것 같습니다.

처음 배우는 분들도 기본적인 개념만 익혀서 사용하는데 전혀 문제 없기 때문에

디테일하게 다루다 보면 생각의 장벽에 부딪히는 경우가 많더군요.

Document Class (이하 DC)는 한줄로 표현하자면 "fla 의 하얀 바탕 그 자체가 Document Class다." 이라고 할 수 있습니다.

물론 이정도만 알고 있어도 사용하는데 큰 불편함은 없지만

Application Domain 을 사용한다던지

Loader 를 이용해서 외부 클래스를 사용한다던지

Stage 에 대한 디테일한 컨트롤을 할때는 어김없이 DC에 대한 개념이 발목을 잡을때가 많습니다.

DC 에 대한 가장 정확한 표현은

"Stage 에 가장 먼저 자동으로 addChild 되는 DisplayObject 다."

라고 할 수 있습니다.

자 하나씩 구체적으로 살펴보도록 합시다.

우리가 사각형을 만들때 보통


이렇게 하죠?

자 그러면 네이밍을 좀 바꿔서



이런식으로 구조를 잡았다고 가정해보면

대충 소스에서 눈치챌 수 있듯이

root 를 가장 최상위 컨테이너로 사용해서 구조를 잡은게 되겠죠.



이와 마찬가지로

DC 는 저 root 처럼

기본적으로 가장 맨처음 생성되는 Sprite 일 뿐입니다.

다만 Document Class 라는 거창한 이름이 붙은 이유는

swf 가 구동이 되면 자동적으로 DC 가 생성되서 Stage 에 addChild 되어 가장 먼저 눈에 보이는 클래스이기 때문입니다.

addChild 가 된다는 이야기는 removeChild 도 된다는 이야기입니다.

아래와 같이 한번 테스트해보세요.

fla 바탕에 신나게 이거저거 만들어 놓은 후에



fla 바탕에 신나게 장난쳐놓은게 싹 사라진것을 볼 수 있을겁니다.

DC 라는것은 그저 Stage 에 가장 첫번째로 자동으로 addChild 되는 Sprite 일 뿐입니다.

때문에 그다지 어렵고 위대한 존재도 아니며

건드리기 힘들고 무조건 최상위에 있는 그런 특권을 가진 클래스도 아닙니다.

맘에 안들면 새로운 클래스 만들어서

var newDC:Sprite = new Sprite();
this.stage.addChild(newDC);
this.stage.removeChild(this);

라는 소스로 DC 를 바꿔치기 할 수도 있다는 얘기죠.

이부분을 잘 응용하면 이런 구조를 만들 수 있습니다.

Flash 입장에서 Flex 의 부러운 점 중에 하나가

Alert 뜰때 배경이 뿌옇게 되는 기능이 꽤나 매력적으로 보였었죠.

그러나 막상 구현하자니 바탕에 있는거 통채로 bitmap 으로 카피떠서

blur 주자니 보통일이 아니고

하나하나 blur 주자니 액션이니 뭐니 이런거 죄다 다시 removeEventListener 해줘야되서 물리적으로 불가능하고...

이럴때 DC 의 특성을 잘 이용하면 이쁘게 구현할 수 있습니다.

1. var alert:Sprite = new Sprite(); //알럿 클래스를 만듭니다.
2. this.stage.addChild(alert); //알럿을 스테이지에 추가합니다.
3. this.filters = [new BlurFilter()]; //DC 에 필터를 먹여줍니다.
4. this.mouseEnabled = false; // DC 의 마우스 이벤트를 무력화시켜줍니다.
5. this.mouseChildren = false // DC 의 child 들을 무력화시켜줍니다.


이렇게 하면 Flex 의 이쁜 알럿기능을 플래시에서도 할 수 있습니다.

이처럼 DC 의 성질을 알고나면 DC 도 별거 아니라는 걸 알 수 있습니다.

슬럼덩크의 명대사 "왼손은 거들뿐."

훗... DocumentClass는 Stage를 거들뿐... 후후후... (이건 아닌가 -_-a)
Client : (주)엠파스

담당자 : 이연선과장(구현), 윤진상과장(코어, 설계)

사용언어 : Flash CS3, ActionScript 3.0

내용 : 엠파스 블로그가 개편하면서 동영상 서비스를 주력으로 하게 됐다.

기간 : 2007.08 ~ 2007.09

그에 따라 동영상을 업로드하여 FLV 로 인코딩해서 플레이어로 재생되는 솔루션을 DMI가 맡아서 진행했다.

업로드모듈과 플레이어를 담당했으며

특이사항은 썸네일 추출이나 동영상 정보수정등을 플레이어 내부에서 직접 할 수 있으며

책갈피라는 독특한 기능이 추가되어서 재생되는 화면을 드래그하여 바로 추가할 수 있다.

URL : http://blog.empas.com/

스크린샷 :

(이 스크린샷은 포스트나 스크랩을 허용하지 않습니다. 펌 또는 무단 도용시 법적인 처벌을 받을 수 있습니다.)

0123
사용자 삽입 이미지

AIRPlayer Design


이번에 곧 배포하게 될 데스크탑용 Flv 재생기다.

드래그앤 드랍으로 떨구면 재생되는 간단한 인터페이스를 지니고 있다.

UI 는 유저들의 혼동을 막기 위해서 기존 UCC 의 그것을 그대로 가져갔다. (내 본업이기도 하지만 -_-;;)

나름 큰 버튼을 컨셉으로 잡고 디자인해봤는데

여자친구가 대뜸 무슨 디자인이 요따구냐고 해서... 저대로 갈지 말지 겁네 갈등중이다 -_-+

나름 이번에 만들면 프레임웍 좀 만들게 될 모듈이라 은근히 작업많아서 서둘러야될텐데

(누가 먼저 만들어버릴지도 모르니... 다행이 아직까지 FLVPlayer 는 exe 용 밖에 배포되지 않았다.)

'Adobe AIR > 내가 만든 AIR' 카테고리의 다른 글

[AIR] AS3Decorator (Update at 08.03.11)  (4) 2007.10.04
[AIR] AS3/PHP Encoder  (0) 2007.09.14
[AIR] 많은 메뉴 관리하는 인터페이스  (3) 2007.09.10
[AIR] FileUploader  (0) 2007.08.27
[AIR] Image Editor 1.1.2  (4) 2007.08.27

+ Recent posts