안녕하세요.

이 블로그의 주인, 우야꼬입니다.

요즘 많은분들이 ActionScript 3.0 에 대해서

피부로 느끼고 계신분들이 많이 보이네요^^

실제로 공부한지 꽤 되신분들도 계신것 같고

이제 막 시작하고 계신분들도 계시고

현업이 너무 바빠서 트렌드는 알지만 따라가지 못하는거 같아 조바심 느끼시는 분들까지.

물론 이미 현업에서 훌륭하게 사용하고 계신분들도 많습니다.

저 역시도 3.0 으로만 작업한지 꽤 오래된거 같네요.



플생이나 메신져로 공부하시는 분들에게

도움이 되는 몇가지를 말씀드려보고자 합니다.

우선, ActionScript 3.0 은 더 이상 "알아서" 해주는 언어가 아닙니다.

2.0 때는 getURL 만 해주면 다 됐고

duplicateMovieClip() 만 하면 다 됐었죠.

하긴 지금 생각해도 편하긴 편한거 같습니다.

하지만 ActionScript 3.0 은 플래시가 알아서 해주는 부분은

거의 우리가 손을 대선 안될 부분까지

최소화 되었습니다.

실제로 getURL 에는 굉장히 많은 동작이 일어납니다.

http request 를 만들어서 서버측에 보내고

돌려주는 응답신호를 받아서

브라우져를 띄워 그 돌려진 컨텐츠를 띄우지요.

사실 말로해서 이정도지 굉장히 많은 기능들이 숨어 있습니다.

이런 부분들을 이제 우리가 직접 모두 컨트롤 할 수 있게 되었습니다.

그게 ActionScript 3.0 에서 가장 혼란스러운 부분일지도 모르겠네요.

이제 그런 부분을 직접 만들어줘야지만

정상적으로 동작하게 되죠.

즉, 할일이 많아졌습니다.

또 다른 말로는

부지런해져야되며,

절차와 기능을 정확하게 알아야되며,

어떻게 쓸 것인지 명확하게 인지하고 있어야 됩니다.

그래야지만 ActionScript 3.0 의 본질을 충분히 활용한다고 볼 수 있습니다.

이제는 플래시가 "알아서" 해주지 않습니다.


두번째는 기본에 충실해야합니다.

각 숫자 타입과 클래스들이 어떤 역할을 하는 클래스인지

잘 알고 있어야 합니다.

물론 그러기에는 참 시간낭비가 많게 느껴질겁니다.

Sprite 나 MovieClip 이나 거기서 거긴데

걍 손에 익은 MovieClip 쓰면 어때...

라고 생각할지도 모르겠지만

Sprite 와 MovieClip 의 차이를 알고 모르고의 차이는

개발자와 디자이너의 차이처럼

형언하기 힘들정도의 차이입니다.

메모리는 고작해야 1k 정도 차이나겠고

시간차이도 머 거의 눈에 보이지도 않는데 무슨 상관있겠어.

라고 생각한다면 여러분은 앞으로

개발자로 살아가는 데 있어서 적게는 5년 길게는 10년의

시간을 낭비하게 될겁니다.

왜냐구요?

효율과 메모리에 대해서 알고 있지 않다면

성능좋은 어플리케이션을 만들 수 없다는 이야기고

화려한 게임을 만들 수 없다는 이야기고

여러분이 만드는 게임이나 어플리케이션은

프로젝트가 큰 프로젝트일수록, 스케일이 큰 게임일수록

훨씬 더 느릴것이고, 훨씬 더 용량이 클것이며

그로인해서 유저들은 멀리할것이고

여러분이 참여한 프로젝트는 칭찬받지 못할것입니다.



물론 지나치게 극단적인 표현이지만

그렇다고 전혀 틀린말도 아닙니다.

요즘 한창 인터넷 뱅킹쪽에서는

무겁고 비효율적인 Flex 프로젝트들을

걷어내고 있는 추세이며

게임쪽에 도입되는 3D 기술들은

메모리 하나에 바들바들 떠는 추세입니다.

이런 추세를 따라가지 않는다면

여러분의 시간은 그만큼 낭비가 되는것이죠.


결론,

그렇다면 해야 할일도 많아졌고

공부할 것도 많아졌는데 어떻게 해야할까...?

제가 사실 드리고 싶은 말은 이것입니다.

"시간을 길게보고 천천히 느긋하게 공부하십시요"

당장 신기한 AIR 가 나오고

하루가 다르게 3D 라이브러리가 쏟아져나오고

맨날맨날 신기한 사이트들이 막 쏟아져나오니까

계속 뒤쳐지는것 같고

나만 시궁창같은 현실에서 쓸데도 없는 Document Class 가 먼지나 공부하고 앉았고...

아마 이런 생각이 드실 수도 있습니다.

하지만 지금 조바심을 내서

1분을 아끼려고 공부하는 책의 3장, 레퍼런스의 5페이지를 건너띄었다면

여러분이 지금 넘긴 그 3~5장의 내용을 알고 있었더라면

겪지 않을 시행착오 때문에 10시간, 하루, 한달을 고생할지도 모릅니다.

진정한 OOP 의 면모로 돌아온 ActionScript 3.0 은

모래성을 쌓듯이 천천히 구석구석 착실히 자기것으로 만드는 게 중요합니다.

절대 시간에 쫓기듯이

허둥지둥 대충보고 파라미터만 외우고

예제만 한번 실행시켜보고 마는게 아니라

파라미터의 의미.

메소드명이 뜻하는 역할.

클래스가 상속하고 있는 상위 클래시가 무엇인지.

이런 의문을 항상 달고 공부하시면

큰 도움이 될듯 합니다.



제가 공부하면서 들었던 궁금증들을 한번 적어봅니다.

여러분도 공감하시는게 있으신가요?

"왜 addChild 는 Sprite 가 아니라 DisplayObject 일까?"

"EventDispatcher 와 Event 는 이름이 왜 비슷하지?"

"어? addEventListener 에는 변수가 2개가 아니라 그 뒤에 3개가 더 있네? 이건 뭐지?"

"BitmapData.draw() 는 파라미터 타입이 처음보는거네? 이건 뭐지?"

"uint 는 양의 정수만 되나보네. 그럼 uint 은 0 에 1을 빼면 어떻게 될까?"

"어라 플래시에서 만든 무비클립은 이름을 안써도 에러가 안나네? 왜 안나지?"

"심볼은 linkage 로 걸면 MovieClip 으로 되는구나, 어? png 파일도 linkage 를 걸수 있나보네?"

"Document Class 는 stage 가 parent 구나. 그럼 removeChild 도 되나?"

+ Recent posts