2.0의 가장 큰 특징은 모든 작업이 무비클립심볼 중심으로 이뤄 진다는 것이다. 애니, 버튼, 자체움직임, 케이스, 기타 등등... 무비클립만 있으면 모든걸 할 수 있다.
그래서 무비클립심볼이 가지고 있는 메서드( 내장함수) 나 프로퍼티( 속성 )만 외우고 기본적인 프로그래밍 지식만 있다면 어렵지 않게 다양한 기능들을 구현할 수 있다.
순수프로그래머들이 플래시를 하면서 어려움을 느끼는 것들이 몇 가지가 있는데, 모션구현 과 무비클립계층구조 그리고 타임라인에서의 스크립트 연속성이라고 할수 있겠다.
여기서 2.0의 무비클립계층구조에 대해서 알아보자.
'무비클립 속의 무비클립속의 무비크립속의 마이무비'
이부분을 스크립트로 표현하면 mc.mc.mc.mymc 이렇게 표현한다.
mymc에 접근하려면 'mc.mc.mc.mymc' 이경로로 접근해서 제어해야한다. 정말 복잡하면서 유연하지 못한 접근방식으로 표현되어지고 있다.
이걸 좀 쉽게 사용하기 위해서 고급프로그래들은 mymc_mc 라는 변수를 만들어서 그 mc.mc.mc.mymc 이 경로를 mymc_mc 변수에 담은 후 참조해서 사용하는 센스를 발휘할 것이다.
예) var mymc_mc: MovieClip = mc.mc.mc.mymc;
이런식으로 표현하게되면 해당객체에 접근하기 위해 모든 경로를 다 표현해야되는 번거로움을 피할 수 있다. 하지만 계층구조가 깊어질수록 코드는 정말 더 지저분해지고 불필요한 인스턴트를 난발하는 구조가 바로 2.0 이하 버전 스크립트다.
플래시가 무거운 프로그램이며 쓰레기프로그램이라는 말을 '스티브잡스'가 말한바 있다. 플래시를 개발하는 내 입장으로선 썩 듣기좋은 소리는 아니지만 2.0 이하 버전은 아직 개발언어로서 부족한 점이 너무 많다. 2.0이 정식으로 출시되면서 구성을 제대로 갖춘 클래스가 도입되어 OOP구현이 되는데 만족한다.
2.0의 가장 큰문제점은 너무 많은 기능들이 무비클립에 집중화 되어 있다는 것과 불필요한 인스턴스의 남발이다.
무비클립으로 모든걸 하다보니 단순한 라인하나 그릴 때에도 무비크립을 사용해야만 한다. 원래 무비크립의 목적은 독립적인 타임라인을 가진 표시목록객체이다. 즉 애니메이션을 만드는 용도인데 단순한 선을 만드는데 사용됐다는 것이다. 쉬운예를 들자면 자장면 배달하는데 오토바이면 될껄 리무진타고 배달 가는격이랄까... ;___;
2.0의 무비클립은 비싸다.... 주요원인은 상속시스템이 효율적으로 구현이 되어 있지 않다는 것이다.
불필요한 인스턴스의 남발이란 라이브러리에서 스테이지에 이미지를 붙일때 식별자에 이름을 넣는다. 그리고 스테이지에 붙일때 다시 인스턴스를 부여한다. 여기서 문제는 인스턴스를 부여한다는데 있다.
인스턴스를 부여하는과정은 실제 프로그래밍에서는 필요없는 구간이다. 물론 프로그래머출신이 아니라면 이해 하기가 힘든 부분일수도 있다. '인스턴스 없으면 어떻게 내가 제어하려는 무비클립에 접근할 수 있겠냐'고 반문 할수도 있다. 그러나 실제 프로그래밍에서는 메모리효율을 떨어뜨리는 인스턴스 보다는 변수나 배열을 많이 사용한다.
실제 그렇게 사용해보니 정말 편하더라... 배열같은경우 인덱스번호만 가지고 무비크립을 제어할수 있다. 배열을 이용하는 습관을 들여보자. 2.0은 인스턴스를 의무적으로 생성해야하는 구조때문에 어쩔수 없이 사용해야 하지만 작업할땐 배열이나 변수를 만들어서 제어하는 습관을 익혀보자.
'액션스크립트 2.0' 카테고리의 다른 글
이벤트 모델 : EventDispatcher 클래스 dispatchEvent 구현 - AS2.0 (0) | 2010.10.25 |
---|