ActionScript 3.0 : 어려울까요? 안 어려울까요? - (3)
Study/Flex 2008/05/21 00:36 |제공 : 한빛 네트워크
저자 : Colin Moock
역자 : 박주현
원문 : ActionScript 3.0: Is It Hard or Not?
짜야 될 코드량이 너무 많아요!
ActionScript 3.0의 마지막 오해 하나는 온라인에서건 오프라인에서건 자주 듣게 되는데 이는, “ActionScript 3.0 은 다 좋은데, 너무 고지식적이야! 간단한 거 만드는데도 코드가 너무 길어져!” 다음 두 예제는 제가 자주 ActionScript의 다변다용성을 알리는데 자주 사용하는 것들입니다.
1) ActionScript 1.0 이나 2.0으로 특정 URL을 접속하기 위해 다음의 코드를 씁니다.
동일하게, ActionScript 3.0에서 기본적으로 정규표현식이나 events들이 제공되는데 반해 ActionScript 2.0 과 1.0에서는 이를 쓰기 위해 직접 만들거나, 다른 사람이 만든 것을 써야 하는데 이 때문에 더 많은 돈과 시간이 낭비됩니다.
게다가 이전 버전보다 더 간결해지는 예제도 많습니다. ActionScript 3.0의 XML 지원 시스템인 E4X가 그러합니다. 다음의 XML 데이터를 읽어야 된다고 가정해봅시다.
각 개개의 구문 코드 별 길이 비교에서는 ActionScript 3.0이 더 긴 상황도 있었고, 짧은 상황도 있습니다. 하지만 실제로 코딩해보면 ActionScript3.0쪽이 깔끔한 구조로 훨씬 더 짧게 작성할 수 있었습니다. 딱 맞게 맞추어져서 부가작업 없이 짤 수 있었던 깔끔한 구조들 덕분이었습니다.
믿어주세요!
이제 요점을 정리해 보겠습니다. FutureSplash 때부터 Flash를 계속 써온 개발자가 ActionScript 3.0의 사용을 기피 할 이유는 없습니다. 여전히 timeline에 직접 간단한 스크립팅 할 수 있고, 여전히 배우기 간단하고, ActionScript2.0과 1.0보다 코딩이 그다지 복잡한 것도 아니기 때문입니다.
반대로 내가 ActionScript 3.0을 처음 배워 사용해보았을 때, 간결한 API들과 Flex Builder의 coding assistance 기능으로 더 빠르게 프로그램을 만들 수 있었고, 이 후 유지보수도 더 쉽게 가능했습니다. 이를 써본 후 느낀 다른 장점들은 앞에서 설명한 것들 외에 아래에도 더 있습니다..
저자 : Colin Moock
역자 : 박주현
원문 : ActionScript 3.0: Is It Hard or Not?
짜야 될 코드량이 너무 많아요!
ActionScript 3.0의 마지막 오해 하나는 온라인에서건 오프라인에서건 자주 듣게 되는데 이는, “ActionScript 3.0 은 다 좋은데, 너무 고지식적이야! 간단한 거 만드는데도 코드가 너무 길어져!” 다음 두 예제는 제가 자주 ActionScript의 다변다용성을 알리는데 자주 사용하는 것들입니다.
1) ActionScript 1.0 이나 2.0으로 특정 URL을 접속하기 위해 다음의 코드를 씁니다.
getURL("http://www.moock.org");
ActionScript 3.0에서는 다음의 코드이고요. navigateToURL(new URLRequest("http://www.moock.org"));
2) 특정 무비클립에 원하는 swf파일을 읽어오려면 ActionScript 1.0과 2.0에서는 다음과 같이 해야합니다. someClip.loadMovie("foo.swf");
ActionScript 3.0에서는 이렇고요.
var loader:Loader = new Loader();
loader.load(new URLRequest("foo.swf"));
someClip.addChild(loader);
앞의 두 예제에서 중 ActionScript 3.0코드는 이전 버전의 코드보다 깁니다. 하지만 각각의 코드들만으로는 최근의 개발 트렌드를 반영할 수 없습니다. 제가 직접 프로그래밍을 해본 결과 ActionScript 3.0은 ActionScript 2.0과 1.0보다 항상 더 많은 코드가 필요한 건 아닙니다. 예를 들어 ActionScript 3.0에서 텍스트필드, 버튼, 무비클립등을 만들 때는 ActionScript 2.0 과 1.0 에서의 코드량과 비슷합니다. 여기 ActionScript 3.0과 그 이전 버전의 제대로 된 그 차이를 제대로 보여줄 수 있는 예제가 있습니다. // ActionScript 1.0 와 ActionScript 2.0
someClip.createTextField("t", 1, 0, 0, 0, 0);
t.border = true;
t.text = "hello world";
// ActionScript 3.0
var t:TextField = new TextField();
t.border = true;
t.text = "hello world";
someClip.addChild(t);
단순히 보았을 때 ActionScript 3.0에서는 16번 이상의 타이핑이 더 필요합니다. 하지만 ActionScript 3.0의 구조적 차이는 여러 이점이 있습니다. 예를 들자면 ActionScript 3.0에서 다른 무비클립에 같은 텍스트필드를 하나 더 추가하기 위해 다음의 것을 하기만 하면 됩니다. someOtherClip.addChild(t);ActionScript 2.0과 1.0 에서는 이전의 코드에서 바로 간단히 텍스트필드를 복제 할 수 없습니다. 원하는 무비클립에 텍스트필드를 추가하도록 함수를 만들고, 추가된 텍스트 필드에 원래의 텍스트 필드의 정보들을 복사해 넣어야 합니다. 이렇게 하면 코드량이 많아지고 복잡해지는데, ActionScript 3.0에서는 이런 수고를 할 필요가 없습니다.
동일하게, ActionScript 3.0에서 기본적으로 정규표현식이나 events들이 제공되는데 반해 ActionScript 2.0 과 1.0에서는 이를 쓰기 위해 직접 만들거나, 다른 사람이 만든 것을 써야 하는데 이 때문에 더 많은 돈과 시간이 낭비됩니다.
게다가 이전 버전보다 더 간결해지는 예제도 많습니다. ActionScript 3.0의 XML 지원 시스템인 E4X가 그러합니다. 다음의 XML 데이터를 읽어야 된다고 가정해봅시다.
<STAFF>
<EMPLOYEE>
<NAME>Marco</NAME>
<MANAGER>James</MANAGER>
</EMPLOYEE>
<EMPLOYEE>
<NAME>Graham</NAME>
<MANAGER>James</MANAGER>
<EMPLOYEE>
<EMPLOYEE>
<NAME>James</NAME>
<MANAGER>Dorian</MANAGER>
</EMPLOYEE>
</STAFF>
위 자료에서 두 번째 EMPLOYEE의 NAME을 알기 위해 ActionScript 2.0과 1.0에서는 다음과 같이 해야 합니다. staff.firstChild.childNodes[1].firstChild.firstChildActionScript 3.0 에서는 이렇습니다.
staff.EMPLOYEE[1].NAMEActionScript 3.0의 코드가 더 짧고, 더 직관적입니다. 이제 MANAGER가 “James”인 모든 EMPLOYEE의 목록을 구해봅시다. ActionScript 2.0 와1.0 에서는,
var managedByJames = new Array();
for (var i = 0; i < staff.firstChild.childNodes.length; i++) {
if (staff.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue
== "James Porter") {
managedByJames.push(staff.firstChild.childNodes[i]);
}
}
ActionScript 3.0 에서는, staff.*.(MANAGER == "James Porter")ActionScript3.0의 코드가 훨씬 더 짧고, 훨씬 더 직관적입니다.
각 개개의 구문 코드 별 길이 비교에서는 ActionScript 3.0이 더 긴 상황도 있었고, 짧은 상황도 있습니다. 하지만 실제로 코딩해보면 ActionScript3.0쪽이 깔끔한 구조로 훨씬 더 짧게 작성할 수 있었습니다. 딱 맞게 맞추어져서 부가작업 없이 짤 수 있었던 깔끔한 구조들 덕분이었습니다.
믿어주세요!
이제 요점을 정리해 보겠습니다. FutureSplash 때부터 Flash를 계속 써온 개발자가 ActionScript 3.0의 사용을 기피 할 이유는 없습니다. 여전히 timeline에 직접 간단한 스크립팅 할 수 있고, 여전히 배우기 간단하고, ActionScript2.0과 1.0보다 코딩이 그다지 복잡한 것도 아니기 때문입니다.
반대로 내가 ActionScript 3.0을 처음 배워 사용해보았을 때, 간결한 API들과 Flex Builder의 coding assistance 기능으로 더 빠르게 프로그램을 만들 수 있었고, 이 후 유지보수도 더 쉽게 가능했습니다. 이를 써본 후 느낀 다른 장점들은 앞에서 설명한 것들 외에 아래에도 더 있습니다..
- ActionScript 2.0 보다 훨씬 빠르다.
- Binary소켓과 Binary data 접근
- 향상된 텍스트 처리지원
- 사운드 스펙트럼의 프로그래밍 가능
- Flash CS3와의 자원관리에서의 높은 통일성 (참조 http://moock.org/lectures/ActionScriptAndFlashCS3/)
- 무료 컴파일러와 개발프레임워크
- 그리고 50가지 이유 더: Reasons ActionScript 3.0 Kicks Ass, by Grant Skinner.
댓글을 달아 주세요