AS3.0 API
AS3.0의 3D 쿼터 뷰 화면에서 자동 Depth Manager 클래스를 구현
by 세계의끝 on 2.18, 2011, under AS3.0 API, 게임 제작
최근에 3D 쿼터 뷰(quarter view)의 슈팅 롤플레잉 형식의 게임 제작을 하다가, 객체간 앞뒤 관계(원근관계)를 자동으로 파악하여 세팅해 주는 기능이 필요하게 되었습니다.
작업에 들어가기 전에는 “setChildIndex() 메서드로 index 만 바꿔주면 뭐 금방 되겠지” 하는 생각을 했었는데, 막상 작업을 하다보니 이런 저런 이유로 상당히 녹록지 않은 작업이 되어버렸습니다.
일단 무슨 게임을 만드는지 살펴볼까요?
키보드의 wasd 키로는 이동 방향을 전환하고, 마우스로 플레이어 캐릭터의 방향과 슈팅을 하게 되는 롤 플레잉 스타일 게임 입니다. WOW(World of Warcraft)의 플레이 스타일과 비슷하다고 생각하면 되겠습니다.
게임의 시각 객체들을 담고 있는 컨테이너는 아래와 같이 만들어져 있습니다.
로드한 파일이 AS2.0인지 AS3.0인지 런타임에 확인하는 방법
by 세계의끝 on 8.22, 2010, under AS3.0 API
이런 경우를 가정해 봅시다. 여러분은 이번에 새로운 이 러닝(e-learning) 프로젝트에 개발자로 참여하게 되었습니다. 이 러닝이라 별로 하고 싶진 않았지만 영업 파트에서 다른 프로젝트와 연계된 작업이라고 하는통에 떠 안을 수 밖에 없었습니다. 그러나 여러분의 회사는 이 러닝 전문회사가 아닌데다가 실제로 플래시를 다루는 직원은 여러분 회사에 여러분 외에는 없습니다. (이런 경우 은근히 많을거라 생각합니다.)
그래서 결국 플래시로 프레임웍, 즉, UI는 여러분이 제작하게 되었고, (이 러닝 업계에서는 프로토타입을 만든다는 표현을 하죠) 차시별 작업은 경험이 많다고 하는 외주 팀에게 하청을 주기로 하였습니다. 여러분은 이제 제법 클래스를 이용해 프로젝트를 수행할 수 있게 되었고, AS2.0 으로 프로젝트를 만들지 않으므로 AS3.0 으로 이 러닝 프로젝트를 수행하려고 합니다. 흔하디 흔한 이 러닝 프로젝트지만 여러분은 좀 다르게 만들고 싶어하죠.
그런데 여기서 문제가 발생합니다.
TweenMax 로 유명한 GreenSock, 통합로더 LoaderMax 라이브러리 공개
by 세계의끝 on 6.18, 2010, under AS3.0 API
TweenMax/TweenLite 로 유명한 GreenSock 이 6월 16일자로 통합 로더를 발표하고 LoaderMax 라고 이름 지었습니다. GreenSock 은 TweenMax/TweenLite 개발은 대략 끝내고, 얼마전에는 타임라인을 제어하는 TimelineMax/TimelineLite 를 내놓더니, 이번에는 통합 로더군요.
이 라이브러리는 단순히 swf, image, video 등을 로드하자는게 아니라 xml, css, mp3, txt 나 binary 데이터 까지 플래시에서 로드 가능한 거의 모든 종류의 외부 자원들을 로드할 수 있습니다.
사실 이것 뿐이라면 “그정도의 통합 로더는 나도 만들어 사용하고 있다” 고 하실 분들이 있을텐데요. 제작자인 GreenSock 은 이전에 발표한 TweenMax 에서 보여주듯이 개발자에게 상당히 매력적인 편의 기능을 동시에 제공하고 있습니다.
로드된 swf 에서 다시 한단계 건너 로드되는(2단계 이상의 로더구조) 외부 자원에 대한 관리를 하거나, 다수의 외부 자원을 동시에 로드할 수 있는 소위 벌크로더 구현, 그 벌크로더의 로딩 순서를 제어할 수 있는 기능도 제공합니다. 그중에서도 가장 주목할만한 것은 LoaderMax 와 관련 있는 미리 약속된 XML 노드이름을 자동으로 파싱해서 로더 객체를 만들어 내고 속성까지 설정할 수 있는 XML 자동 파싱 기능입니다.
아래 설명을 읽어내려가면, 전반적으로 개발자의 번거로운 코딩 작업들을 알아서 처리해 주는 정말 편리한 라이브러리라는것을 알 수 있습니다. 귀차니스트인 저에게는 딱이군요.
이 예제는 GreenSock 이 만든 데모 예제 입니다. LoaderMax 가 어떻게 동작하는지 확인해보세요. 썸네일이 뜨기 전의 전체 로딩 작업 부터 LoaderMax 의 영역입니다.
아래는 http://www.greensock.com/loadermax/ 의 요약 번역 입니다. 저는 전문 번역자가 아니므로 일부 번역에 에러가 있을 수 있습니다. 이상한 점이 있으면 원문을 확인하세요.

Blog under the Creative Commons Attribution-NoDerivs 3.0 License