영혼 불어넣기
ActionScript3.0 은 가능한한 코드를 as 파일에 넣는것을 추천하고 있습니다. 일단 MovieClip 상에 코딩하는 것이 금지되어 있고, 또 frame 에 코딩하는 것도 그다지 좋지 못한편이죠. fla 작업파일 하나에 스크립트까지 같이 들어있는 것과 스크립트들이 as 파일들에 나뉘어져 있는것 중 초급자들에겐 전자가 훨씬 편리하다고 느낄 것입니다. 하지만… 이게 은근히 빡세요…;;; 일단 as 라는 텍스트 소스파일로 되어 있으면 코드검색이나 여러가지 면에서 도움이 많이되거든요. 무엇보다 FDT, Flex, Flash Develop 같은 전문 코딩프로그램들의 도움을 받을수가 있죠.
뭐 그래서 일단 본격적인 응용 수업에 들어가기 앞서서 2.0 스타일의 코딩방식을 3.0 에 맞게 적용하는 방법을 알아보도록 하겠습니다.
기능을 가진 MovieClip 만들기
우선은 소스코드를 "src" 라는 폴더에 저장하기 위해서 약간의 설정을 해줍니다.
환경설정의 ActionScript 에서 "ActionScript 3.0 설정" 버튼을 누릅니다.
그리고, 이렇게 "./src" 라고 써줍니다. 그러면 앞으로는 fla 파일 위치에서 "src" 라는 폴더를 클래스 경로로 사용하게 됩니다. 뭐…;;; 잘 모르겠으면 그냥 똑같이 따라하세요.
설정이 다 되었으면, 이렇게 MoveClip 을 하나 만들어줍니다. 여기서 눈여겨 봐야 할 것은 "클래스" 에 적은 "test.TestMovieClip" 부분 입니다. 만들었으면 이제 코딩을 시작해 봅시다.
설 정이 되었으면 이렇게 TestMoveClip.as 파일을 "src/test" 안에 만듭니다. 눈여겨 보라고 한 test.TestMovieClip 과 연관시켜서 생각하면 뭔가 아시겠죠? test 팩키지의 TestMovieClip 으로 class 를 설정하면, 해당 무비클립은 test/TestMovieClip.as 파일과 연결이 되게 됩니다.
fla 파일 위치를 기준으로 src 폴더가 있고, src 폴더 아래에 test 폴더가 있습니다.
그 런 다음 이렇게 간단한 코딩을 해줍니다. package test 와 class TestMovieClip, function TestMovieClip 을 눈여겨 보시면 대충 어떤 구조인지 이해하실 수 있을겁니다. 코딩이 되었으면 퍼블리싱 해보죠. ctrl+enter 를 누르면
이렇게 정상적으로 출력이 됩니다. 코드를 약간 더 추가해 볼까요?
요렇게 x, y, width, height 를 약간 설정해준 다음에 실행해보면
디자인에서 설정한 것과는 틀린 화면이 나오게 됩니다.
moveX 라는 함수를 하나 만들어준 다음에
링키지네임을 myRect 라고 걸고
이렇게 프레임 스크립트에서 만들어놓은 함수를 실행시켜주면
이렇게 움직이게 됩니다.
이 런 작업 형태를 적절히 활용하면 "스크립트를 약간만 아는 디자이너" 와 "개발자" 가 협업할 수 있는 구조가 되겠죠? 디자이너는 어려운 알고리즘에 대한 이해 없이, 개발자가 만들어놓은 이런 전용 기능들을 사용할 수 있습니다. Action Script 작업에 관여한다고 해서 모든걸 알아야 하는건 아니라는거죠…
MovieClip 을 컴포넌트로 만들기
좀 더 발전된 형태로 컴포넌트로 만드는 방법이 있습니다. 이 부분은 약간 어려운 내용이 되므로… 걍 이런게 있구먼… 하고 넘어가도 됩니다.
코딩의 setter 에 Inspectable 이라는 meta tag 를 넣어줍니다.
그런 다음 라이브러리의 오브젝트에서 오른클릭을 한 뒤, "구성요소 정의" 를 눌러줍니다.
클래스 부분에 연결할 class 를 똑같이 써주고 확인을 누르면
이렇게 무비클립이 컴포넌트로 변하게 됩니다. 이게 어떤 역할을 하냐하면…
이렇게 변수를 입력할 수 있게 되는데요…
만들어놓은 myWidth 를 400 정도로 적은 다음에 퍼블리싱 하면
이렇게 컴포넌트 매개 변수에 입력한데로 변하게 됩니다. 이렇게 무비클립을 컴포넌트로 만들게 되면 스크립트를 모르는 디자이너라도 간단하게 기능에 대한 설정을 해줄수 있습니다.
개 발자가 이런식으로 만들지 못하는 이유는 이런 작업의 흐름이 "개발자들 사이에서만 맴도는" 기능이기 때문이죠. 그 흐름을 이어서 다음 작업을 할 디자이너나 퍼블리셔가 존재하지 않기 때문에 편리를 추구할 수 없는것이죠. "디자이너인데 ActionScript 를 배워야 하나…" 하면서 끙끙대는 사람들은 많지만, 그런 사람들 사실 ActionScript 개발에 온다고 해봤자 별 필요없는 인력입니다. 잘하는 사람들 널리고 쌓였는데 뭐하러 합니까… 팀플레이 상황에서 디자이너들에게 필요한 지식은 간단한 이해와 동시에 이런 "협업" 에 관련된 지식이 됩니다.
많 은 학원들이 flash 하는 디자이너들에게 action script 를 배워야 한다고 하지만, 사실 이렇게 "협업" 에 필요한 "실용적 지식" 을 가르쳐주는 곳은 드뭅니다. 솔직히 말하자면 좀 짜증나더군요… 다시 한 번 이야기 하자면… 디자이너가 아무리 ActionScript 개발을 잘 하려고 해봤자, 개발자 만큼 잘할수는 없습니다. (ActionScript 가 Java 나 C 같은 것보다 쉽지는 않거든요… 깊이의 문제지 종류의 문제가 아닙니다. ActionScript 개발을 "돈 벌수 있을만큼" 잘하는 것은 매우 어렵습니다.) 한 사람에게 주어진 일에 대한 여력은 누구나 동일한데, 여력을 둘로 쪼개면 "인생을 행복하게 살아야 하는 여력" 을 낭비하게 되거나, "이도저도 아닌 인력이 되어버리는" 상황이 될 수 있게 되기 때문이죠.
"동료" 라는 단어를 무시하면 인생은 굉장히 고달파지게 됩니다. 같이 일하는 동료를 어떻게 활용할지에 대한 생각을 가지면 공부할 것은 상당히 적어지고, 또 효율또한 올릴수 있습니다.
Base Class
뭐 같은 의미에서 BaseClass 라는 것도 존재합니다.
이렇게 TestRoot 라는 것을 만들고
flash 의 속성에서 문서 클래스에 연결해주면…
이렇게 정상적으로 연결이 되게 됩니다.
이런 기능을 잘 활용하면 "어려운 알고리즘은 개발자가 짜고, 디자이너는 그것을 간단히 활용한다" 라는 작업 시나리오를 세울 수 있습니다.
제목 | 글쓴이 | 날짜 | 조회 |
---|---|---|---|
![]() |
2003-09-20 |
12080 |
|
![]() |
2003-09-20 |
11612 |
|
![]() |
2003-09-20 |
20768 |
|
지구인 |
2010-08-27 |
19544 |
|
지구인 |
2009-09-07 |
13862 |
|
![]() |
2010-01-29 |
15823 |
|
![]() |
2004-10-07 |
16925 |
|
![]() |
2009-06-13 |
2411 |
|
![]() |
2009-06-10 |
4762 |
|
![]() |
2009-06-10 |
1298 |
|
2415 [sap] 유용한 싸이트 모음 |
아밥 |
2009-06-04 |
2648 |
아밥 |
2009-06-04 |
4390 |
|
아밥 |
2009-06-04 |
1754 |
|
아밥 |
2009-06-04 |
4562 |
|
2411 [웹 프로그래밍] FABridge |
![]() |
2009-06-04 |
3197 |
![]() |
2009-06-04 |
5088 |
|
![]() |
2009-06-04 |
3673 |
|
![]() |
2009-06-04 |
4415 |
|
2407 [웹 프로그래밍] 18 . Stage |
![]() |
2009-05-31 |
2734 |
![]() |
2009-05-31 |
3279 |
|
![]() |
2009-05-31 |
3740 |
|
![]() |
2009-05-31 |
3802 |
|
2403 [웹 프로그래밍] 14 . 패킷보기 |
![]() |
2009-05-31 |
3516 |
![]() |
2009-05-31 |
3226 |
|
![]() |
2009-05-31 |
2946 |
|
![]() |
2009-05-31 |
3038 |
|
![]() |
2009-05-31 |
2853 |
|
![]() |
2009-05-30 |
2592 |