부록 - 주사위 컴포넌트

 


        원고를 마치고 내친 김에 주사위컴포넌트를 만들었기에 여기에 부록으로 첨부한다.  이 글을 쓰기 전에 나는 이 주사위를 이 작품집의 주제로 삼는데 회의를 가졌다. 그래서 저자들의 모임 클럽의 자유 게시판에 아래와 같은 글을 올렸다. 



 안녕하세요.

        내가 플래시를 배우고 처음 제작한 것이 주사위였습니다.  상당히 시간과 공을 들여 제작했기에 actionscript.org. 에올렸습니다.지금도가끔아래와같은 e-mail 을받습니다.

Dear Koo Chul Lee

I am not a technical guy but just wanted to say how impressed I am at the size efficiency of your dice etc on actionscript.org.

Really cool stuff.

Do you do flash design work?

Regards,

William ****

        그래서 주사위에 애착이 갑니다. 그래서 이 주사위를 이 프로젝트의 sample로 삼아서 해설을 할까 생각했습니다.  V6로 그린 것이라 V7(FlashMX2004)로 update 하려다 V6 코드를 다시 보니 세상에 나처럼 주사위를 그릴 사람은 나 빼고는 없을 것이라는 생각이 들어서 이 글을 씁니다.

        플래시에는 3D 엔진이 달려 있지 않기 때문에 플래시의 3D 애니메이션을 하는 경우 Swift3D, Vector3D 같은 제3자 소프트웨어 것을 연동해서 쓰라는 것이 전문가들의 권고입니다. 아마 이것이 정수일 것입니다.

        플래시만 써서 3D 애니메이션을 한다는 것은 엄청난 기술적 지식과 노동이 요구되는 작업입니다.  설혹 기술적 지식이 있다 하더라도 이 방법으로 3D를 하는 이는 없을 것입니다. 풀그림을 생업으로 하는 사람은 생산성이 떨어져 밥 먹기가 힘들 테니까요. 나처럼 시간이 많아 풀그림을 “놀이”로 하는 이나 할 일이라는 생각이 듭니다. 또 내가 그렇게 풀그림을 할 수 있는 것은 내가 마우스가 발명되기 훨씬 이전의 "원시시대"부터 풀그림을 해 왔기 때문에 가능할 것입니다.

        나는 응용 프로그램을 좋아 하지 않습니다.Versatility 가 없기 때문입니다.90년도 초에 Mathematica를 내 개인용 워크스테이션에 거금 2500불을 지불하고 single user license로 설치한 일이 있었습니다.몇 번 쓰고는 버렸습니다.Flexibility 가 없어서 내가 원하는 데로 output를 낼 수가 없어서 였습니다.Mathematica가 할 수 있는 것은 나는 Pascal 이나 C로 풀그림을 할 수 있기 때문이었습니다. 물론 엄청난 노동이 필요했지만 말입니다.

        요즘처럼 Productivity 위주의 세상에서 나 같은 방법을 전수한다는 것이 무슨 의미가 있는가 하는 의구심이 들어서 이 글을 씁니다.  여러분은 어떻게 생각하시는 지요?

 




        그런데 이 게시글에 다른 저자들의 덧글은 한결 같이 이 주제가 적합하다는 격려였다.  그래서 이 원고를 쓰게 된 것이다.  그러나 아직도 이 의구심은 남아 있다. 그래서 마지막으로 생각한 것은 이 주사위를 컴포넌트로 만들어 3d 풀그림에 익숙하지 않는 프로그래머나 디자이너에게 프로그램없이 사용하게 해 주는 것이었다.

        컴포넌트의 일반적 제작이나 사용법은 이 책의 다른 저자들이 상세히 다루었으므로 생략하고 이 주사위 컴포넌트의 사용법만 간단히 다루겠다.  먼저 컴포넌트를 컴포넌트 패널에 보이게 설치하려면 매크로미디어사가 무료 배포하는 extension manger를 내려 받아 사용하기 바란다.  아래의 사이트에서 무료 다운 받을 수 있다.

http://www.macromedia.com/exchange/em_download/





그림 18) 주사위 컴포넌트가 설치된 components panel


 

        이 이책의 CD에 포함된 DiceComp.mxp (Macromedia Exchange Package)를 Extension Manager 로 설치하면 자동적으로 component 패널에 <그림39>와 갈이 주사위 컴포넌트가  설치된다.


 



 

그림 19) 주사위를 stage에 끌어다 놓으면 그 밑에는 속성창이 뜬다.

        


         이컴포넌트가 일단 설치되면 그 사용법은 여느 다른 UI 컴포넌트와 같다. 즉 컴포넌트를 마우스로 잡아서 stage 에 가져 오면 <그림40>과 같이 주사위를 stage 에 생성한다.  그리고는 그 property 창에서 주사위의 속성을 편집한다. 속성창에서는 주사위의 6면의 색깔을 편집할 수 있다.   colArr 가 바로 그것이다.  다음은 귀퉁이의 색을 편집할 수 있다.  cornerColor가 그것이다. 다음은 초기 주사위의 놓임새를 편집할 수 있다. DiceNum 이 그것이다.  6을 입력하면 주사위의 초기 지향은 6이 위로 향하여 앉아 있게 된다.  또 주사위의 점 색깔을 편집할 수 있다.  dotColor 가 바로 그것이다. 끝으로 주사위를 클릭했을 때 뛰어 오르게 하거나 정지 상태에서 회전하거나를 선택할 수 있다.  그림<그림41>은 속성창을 편집했을 때의 보기를 하나 스크린 셧으로 보이고 있다. 

        마지막으로 주사위를 클릭하였을 때 나오는 점수를 액션스크립트에서 사용하기 위해서는 <그림42>의 오른쪽 위에 있는 스크립트와 같은 이벤트 핸들링을 쓴다.  이  스크립트는 여느 다른 UI컴포넌트의 이벤트 핸들링 메쏘드와 다를 바  없으므로 자세한 설명은 생략한다. 


 

그림 20) 속성창을 편집한 예

          여기서 myDice 는 이 컴포넌트의 인스턴스 이름이다.  아래 무비는 이 컴포넌트의 미리보기 무비다. 이 무비에서는 세 번째 제일 큰 주사위는 뛰지 않고 제 자리에서 회전하여 점수를 제공한다.  CD에 수록된 <DiceTeste.fla> 파일을 열어 액션을 살펴 보기 바란다.  이 컴포넌트는 주사위를 던져서  나오는 점수로 게임을 하는 풀그림에 사용할 수 있을 것이다.  

         




무비1 컴포넌트 미리보기 무비
주사위를 던지려면 주사위에 마우스를
대고 클릭한다.
3번째 주사위는 앉은 자리에서 그대로 회전한다.

       
이것이 내가 독자 여러분에 해 줄 수 있는 모든 것이다.  

CD.zip

 


---------------------
[후기]

첫번째 게재물(주사위1)의 글 첫머리에 밝혔 듯이 이 글은 원래 종이책을 위해 썼던 원고를 내키지 않아 기고를 철회하고 묻어 두었던 것을 거의 그대로 마디(section) 별로 나누어 웹 문서로 고쳐 게재한 것이다. 

거의 원고 그대로이지만 플래시 무비가 있는 경우는 무비를 그대로 올려 글을 읽으며 스크린위에서 실험해 볼 수 있게 했다.

이 게재를 마치면서 adobe 사의  컴포넌트 download 사이트에 가서 내가 만든 주사위 컴포넌트의 다운로드 횟수를 보니 오늘 날자(2009-02-20)로 54,684 Downloads 가 있었다.

그 정도 면 빚은 조금 갚고 가는 것 같다.  

 

 

Posted by 샛솔 :