Flash Platform
고수들은 가르쳐주지 않는 액션스크립트 3.0 입문
by 세계의끝 on 12.22, 2009, under 고수들은 가르쳐주지 않는 AS3.0 입문

며칠전에 뤽 베송의 초기작 "마지막 전투"를 본 김에 생각나서 레옹(원제:The Professional)의 포스터를 넣어보았습니다.
제목을 위와 같이 잡아 본건 다음과 같은 흥미로운 이야기가 곁들여져 있습니다.
제가 주로 활동하고 있는 플생사모에는 “고수”를 찾는 질문글이 하루에도 몇십개씩 올라옵니다. 하나같이 고수님이 자신의 문제를 해결해 주길 바라고 있는데, “이 문제를 해결하실 수 있는 고수님들만 보세요.” 같은 스타일의 제목이라면, 고수가 아닌 저는 답변도 달지 말라는건가요?
“고수” 라는 단어가 언제부터 이렇게 흔하게 쓰였는지는 모르겠지만, 단어에 특별히 좋지않은 이미지가 스물스물 배어들은것 같습니다.
한편 제가 참여하고 있는 스터디 그룹의 리더인 우야꼬군은 평소에 “고수”와 “프로”와의 구분을 이렇게 한다고 합니다.
고수는 엄청나 보이는 로직과 현란한 코드 테크닉으로 빠르게 프로그램을 짜고 버그를 재빨리 알아내어 순식간에 수정을 해치우는 반면, 프로는 같은 기능의 프로그램을 만들어도 코드가 훨씬 간단하고 애초부터 버그가 일어나지 않도록 프로그램을 작성한다고 합니다. (우야꼬 어록?)
위의 내용에서, 누군가를 가르치는 입장으로 상황으로 바꾸어 정의해 본다면,
고수는 자신의 뛰어난 실력을 발휘하여 학생이 무엇이 부족한지 신경쓰지 않고 어려운 테크닉을 늘어놓는 반면, 프로는 학생이 현재 무엇이 필요한지 파악하고 그것을 적절하고도 가볍게 이해시켜줍니다.
가장 불행한 케이스는 학생 자신도 무엇을 모르는지 조차 잘 모르는 경우와, “이건 어려운게 아닌데…” 라고 고수가 대답하는 경우 입니다. 그래서 이 시리즈 포스트의 제목에 있는 “고수” 라는 단어는 사실상 이리저리 긍정적인 의미로 사용되지 않았음을 미리 밝히는 바입니다.
xml 작업에 최적화된 문자열 바꾸기 String replace 클래스
by 세계의끝 on 11.29, 2009, under AS3.0 API
xml을 이용해서 작업을 하다 보면 플래시의 TextField 특성에 기인해서 replace() 를 고정적으로 해 줘야 할 것이 몇 가지 있습니다.
1. 첫 번째로는 개행문자 입니다.

왼쪽과 같이 나오길 기대하지만 개행 문제 때문에 오른쪽과 같이 되버립니다.
보통 xml의 개행문자는 “\r\n” 이지만,[01] 액션스크립트의 개행문자는 “\n” 입니다. 액션스크립트에서 “\r\n” 을 TextField 에 적용하면 위의 이미지와 같이 2줄이 개행이 되버리는 문제를 교정하기 위해서 “\r\n” 를 “\n” 로 replace() 해 줘야 합니다.
- xml 뿐만 아니라 html, php, jsp 등 서버사이드쪽에서 사용되는 텍스트 문서 전체에 해당되기도 하죠. [↑]
문자열 바꾸기 String replace 유틸리티
by 세계의끝 on 11.29, 2009, under AS3.0 API
오늘은 String 클래스의 replace() 메서드를 이용한 간단한 패키지 레벨의 함수를 소개하겠습니다.
코딩하다보면 문자열에 replace() 를 사용해야 할 경우가 많이 있죠. split 과 join 을 사용해 문자열을 바꾸는 방법은 AS2.0 때부터 사용해 오던 방법으로 널리 알려져 있습니다. 그렇지만 AS3.0가 나온 이후로는 훨씬 세련된 문자열 치환 방법인 String 클래스에 replace()메서드를 사용하지 않을 이유가 없죠.
많은 개발자들이 자신만의 문자열 replace 함수를 만들어 사용하거나, 또는 replace 는 간단한 함수이므로 따로 클래스를 만들지 않고 그때그때 코딩해서 사용하기도 합니다.
저의 경우에는 워낙에 사용 빈도가 빈번한 함수라 재사용에 최적화 할 필요가 느껴졌는데요, 저는 이런 방법을 사용했습니다.
0 1 2 3 4 5 6 7 | //replaceString.as 파일의 내용 package kr.ufx.text { public function replaceString( $text:String, $string:String, $replacedString:String, $option:String = "g" ):String { return $text.replace( new RegExp( $string, $option ), $replacedString ); } } |
Blog under the Creative Commons Attribution-NoDerivs 3.0 License