ActionScript 3.0을 알자!
[공지]이미지나 링크가 깨졌다면 댓글 부탁드립니다.
ActionScript 3.0(이하 AS3)은 Java와 매우 유사한 구조를 가진다. 그러므로 Java를 공부한 사람이라면 AS3를 쉽게 접근할 수 있게 된다. C++을 했던 사람도 비슷한 구조때문에 쉽게 접근이 가능하다.
AS2를 공부했던 사람은 객체지향적으로 설계된 AS3를 공부하면 된다.
여기서는 ActionScript 3.0에 대해서 어떤 절차없이 생각나는대로 적어보았다. 매우 개인적인 생각이기 때문에 반박하고 싶으신 내용도 있을지 모르겠다. 그렇다면 얼마든지 댓글 환영이다. ^^
Java와 ActionScript 3.0 차이점
Java와 AS3간에 차이점을 보여주는 표이다. 쭉 훑어보자.
http://blog.naver.com/surfwon/30049390718
ActionScript 3.0의 아쉬운점
AS3는 객체지향기반의 언어이지만 몇가지 아쉬운 점이 존재한다.
1. 메소드(함수)의 오버로드(overload)를 할 수 없다.
오버로드는 클래스안에 같은 이름의 함수를 중복해서 사용할 수 있는 기능이다. AS3에서는 Java나 C++에서 지원되는 이 오버로드 기능이 없기 때문에 개발시 아에 생각을 하지 않게 하는 장점도 있지만 정말 필요할때 다른 방법으로 대체해야하는 불편함이 생긴다. 아래글을 보자.
2. 생성자는 하나만 존재한다.
위 오버로드를 지원하지 않는 것과 일맥 상통하는 내용이다.
3. 추상클래스가 지원되지 않는다.
Java와 같은 abstract 키워드가 존재하지 않아 추상클래스를 만들 수 없다. 하지만 throw등을 이용해 컴파일시가 아닌 런타임에서 동작하는 추상클래스는 제작이 가능하다. 추상클래스는 AS3에도 클래스 설계시 꼭 필요하지만 아직 지원하지 않아 아쉬운 부분이다. 아래 글을 보자.
4. private 생성자가 지원되지 않는다.
private 생성자는 외부에서 클래스 객체를 임의로 만드는 것을 금지시켜주는 역할을 한다. 하지만 AS3에서는 생성자에 public외에는 private, protected 를 쓸 수 없다. private 생성자가 필요한 단적인 예는 싱글턴 패턴을 구현할 때인데 AS3에서는 아래와 같이 다른 방법으로 싱글턴 패턴을 구현한다.
http://koko8829.tistory.com/304
아래 링크는 싱글턴 패턴을 응용한 형태이다.
ActionScript 3.0을 왜 사용해야하는가?
AS2를 주로 했던 사람은 AS3의 강력함을 잘 느끼지 못해서 전향하지 않는 사람들이 많은 것 같다. 아래 글을 보고 AS3를 왜 해야하는가 알아보자.
AS3를 왜 사용해야하는가? : http://ddongkang.tistory.com/76
ActionScript 3.0 의 재미
초보자가 Java, C++에서 느끼지 못하는 AS3의 재미는 처음 만드는 애플리케이션이 시각화된 결과물이라는 점일 것이다. 이 게시판에 앞어 간단한 AS3프로젝트를 통해 3D를 단 몇줄도 안되는 코드로 구현했던 것을 보면 그 의미를 알 것이다. 또한 AS3를 하다보면 매우쉽게 데이터통신, 데이터제어, 각종 미디어 기술지원, Flex, AIR로의 개발확장성등으로 인해 C++, Java와는 또 다른 재미를 느끼게 될 것이다.
ActionScript 3.0 공부하자.
AS3는 얼마든지 공부할 수 있다. 좋은 동영상 강좌도 있다.
AS3 강좌모음 : http://ddongkang.tistory.com/73
AS3 학습을 위해 아래 링크의 문서와 친해지자.(한글이라서 좋다!)
http://help.adobe.com/ko_KR/ActionScript/3.0_ProgrammingAS3/
http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/
위 문서는 영문도 있다.
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/
http://help.adobe.com/en_US/AS3LCR/Flash_10.0/
Flash 기술에 대한 오해
아래 글에 오해하시는 분들이 많으신 것 같아요. 아래 제 댓글을 보시고 제가 보는 관점에서 아래 글을 판단해주셨으면 합니다. ^^
C++, Java하시던 분(기초수준 및 서버개발만 주로 한 분들)이 AS3나 Flex를 접할때 잘못된 태도가 있다. 내가 좀 언어좀 하는데 그냥 쉽게쉽게 할 수 있겠지라는 마인드이다. 또는 Flash인데 그것도 언어야?... 이런 마인드.. 금물이다.
AS3나 Flex도 그만의 독특한 구조와 기능이 있다. C++, Java만 했던 사람이 데이터 바인딩, 메타데이터태그, 이벤트 모델, 비디오제어, 음원제어, 마이크로폰 제어, 디스플레이객체 다루기, 응용애플리케이션구조,각종보안, XML 다루기등에 대해서 잘 알리가 없지 않은가? 그만큼 Flash 기술이 단순히 그래픽을 위한 기술이다라고 오해하는데서 비롯된다고 생각한다. Flash 기술은 이미 데스크탑에서 모바일, 각종운영체제, 각종 브라우져에 MS계열의 기술보다 더욱 빠르고 거대하게 확장되어 이미 우리 실생활에 적용되고 있다. 그러므로 AS3.0을 공부할때 너무 가벼운 마음으로만 공부한다는 생각은 버리자. 요즘 안드로이드 폰에 Flash 지원하고 앞으로 AIR로 각종 모바일 프로그램을 만들 수 있게 된다는 것을 생각하면 가벼운 기술은 아니구나라는 생각을 할 수 있을 것이다.(못믿겠으면 여기를 본다) Flash는 이미 클라이언트 기반을 넘어 서버기반의 기술도 지원해주어 진정한 RIA의 선봉장에 있다. 이러한 점을 잘 이해하고 Flex,AS3,AIR,Flash등을 공부하는 것이 좋겠다.
'Adobe Flash Platform' 카테고리의 다른 글
| [Flash 3D]우리 아가 회전시키기-UV맵핑,원근투영 이용 (21) | 2009/06/30 |
|---|---|
| Flash Builder 4 시리얼키 받기 (5) | 2009/06/29 |
| ActionScript 3.0을 알자! (7) | 2009/06/26 |
| [Flash,ActionScript3.0]Vector와 Bitmap 이미지를 이용한 최적화된 애플리케이션 만들기 (12) | 2009/06/15 |
| [Flash,ActionScript 3.0]DisplayObject cacheAsBitmap 속성의 적용시점 문제 (10) | 2009/06/10 |
| Flash Catalyst/Flash Builder 4/Flex SDK 4에 대해서 공부해보자. (4) | 2009/06/04 |




동감가는것이 많네요
하지만 JAVA와 C++를 하시던분이 비디어제어나 메타데이터태그등을 모른다는것은
아닌거 같습니다
두개의 언어만 했던분이라도 AS3.0을 인정하는 분이 많으니까요(아닌분도 많지만)
정말 내년이 되어서 모바일용 플래시 플레이어10이 나온다면 더욱더 AS3.0은 인정을 받을겁니다^^
답글 감사합니다.
제 글에 오해의 소지가 있을 것이라 생각했습니다. 제가 말하는 C++, Java 접하신 분들은 기초적인 관점에서 학습하신 분들을 의미합니다. MFC까지는 가지 않은 수준의 사람들입니다. 그리고 MFC를 했다고 해도 Flex,Flash에서 다루는 것과는 난이도 차이로 인해 다른 이해가 필요하다는 것을 언급하고 싶었습니다.
글 잘 읽었습니다. 왜 3.0을 해야하는지 다시 한 번 생각하게 되네요.
3.0을 쉽게 생각할 수 있다니 개인적으로 공부하면 할 수록 더 어려워지는게 액션아닌가합니다. ^^;
플래시기술에 대한 오해의 부분에서 약간 어이가 없어서 ^^;
언급하신 모든 기술이 어떤 언어로 개발되었다고 생각하시는지...
예를들어 플래시 플레이어라던가 말이죠.
오히려 플래시에 대한 맹신을 버리실 필요가..
혹시 다른 언어에 대한 편협한 생각을 갖고 계시다면 Qt4를 함 보시거나, fx를 보시거나, 아니면 아무 동영상 플레이어나, 아무 메신저나, 아무 OS나, 아무 온라인게임을 보세요 ^^; 아니면 아무 게임기게임이나, 뭐든..플래시로 아니 되어있는 모든 것들이 펼치는 모든 걸 순수하게 보세요.
안녕하세요 hika님...
오히려 오해를 더 하신 것 같습니다.(제가 표현력이 약해서인가요? ^^;)
개인적으로 C, C++, MFC 분야를 실무에서 다뤘습니다. 저는 Flex를 접하기전에 Flash는 그냥 디자인 툴이다라고만 생각했습니다. 하지만 나중에 Flash 기술 전체를 놓고 보면 오히려 개발이 쉽고 RIA를 만들어 가기에 편하며 그 만의 독특한 부분이 있다는 것을 발견하게 되었습니다.
저처럼 다른 언어를 하시다가 Flash기술로 넘어온 분들이 때때로 Flash를 너무 가볍게 여기셔서 오해한다는 관점에서 말씀드린겁니다. Flash만의 다른 부분이 있는것인데 다른 언어를 하시던 분들이 그 다른것을 무시하고 있다는 점을 저는 지적한 거랍니다. 실제로 저처럼 그렇게 생각한 분들을 몇분 봤구요.
반대의 상황도 마찬가지 입니다. 다른 것을 하면 다른 것에 대한 독특한 면이 있고 강력한 면이 있을겁니다. 그 면을 고려하지 않고 자신이 가지고 있는 언어에만 비교 집착하는 자세는 나쁘다는 관점에서 말씀드린거랍니다.
생각해보니 아무래도 "MS계열보다" 라는 말에 크게 오해하신듯 ^^ 그게 아닌데... ㅎㅎ
이제 오해가 풀리셨는지요?
함수의 오버로딩이 안되는 것은 불편할 수도 있겠습니다만,
혹시 함수가 First Class Citizen 인 컴퓨터 언어에서
함수의 오버로딩까지 되는것이 있을까요? 제가 아는 한 없어서요..
저도 지난 수년간(거의 10년 정도 되었군요)
C/C++로 개발하다가 Java로도 개발하고
그러다가 작년부터는 ActionScript 3 알게 되서
Adobe 공식 PDF 문서 한번 읽어보고 수박 겉핥기 식이지만
키보드 달그락거리고 있는데
ActionScript 3에 굉장한 매력을 느끼고 있습니다. ^^
저기 위에 어떤 님께서 언급하신 건
마치 C++의 우월함을 피력하신 듯한데
영어가 한국어보다 우월하지 않듯
각 언어는 저마다의 목적과 철학이 녹아 있는 것이고
나무를 자를 때는 톱을
못을 박을 때는 망치를 쓰면 되는 것입니다.
망치가 좋다고 밥도 망치로 먹을까요? ㅋㅋ
좋은 글 잘 읽고 갑니다. ^^