Flash/Lecture

얼사마 2008. 5. 7. 18:02
출처 카페 > 플래시(Flash)로 생계를.. |
원문 http://cafe.naver.com/flashdev/28696

▶ Friend

FDT : Eclipse 에 plug-in 으로 깔리는 ActionScript 에디터 입니다. 뭐 오늘 시간은 이 FDT 에 대한 이야기니깐, 천천히 설명해 나가도록 하죠. FTA 가 아니에요…

다운로드 : http://fdt.powerflasher.com/products/fdt-30/faq/

Eclipse update 설치 : http://fdt.powerflasher.com/update/

  

▶ FDT 와 Flex builder

Flexbuilder 가 나온 이후 왠만한 ActionScript 개발자들은 Flex builder 로 옮겨탔습니다. 시장 자체가상당히 마이너한 ActionScript 인지라, 뭐 할만한게 Flex builder 말고는 없었다는 것도 이유가 되었죠. 뭐이전에도 MTASC, Sepy, Flash Develop 같은 것들이 있긴 했지만, 논외로 하죠. Flex builder 가ActionScript3.0 바람을 타고 시장을 통합해 나가고 있는 상황에서 등장한 것이 FDT3.0 입니다. 이전에도 존재하는프로그램이긴 했지만, 3.0 을 갖추고, 제대로 등장한건 지금이라 할 수 있죠. (사실 잘 몰라요… 저도 사용한지 이제2주째라…;;;)

  

FDT3.0 은 꽤 강력합니다. FDT 와 Flex builder 를 비교하자면 일단 3.0 을 코딩하는데 있어서 Eclipse 의 강력함을바탕으로 우수한 기능들을 제공한다는 공통점이 있긴 하지만, 세세한 부분에서는 꽤 많은 차이가 납니다. 그 차이점을 일단정리해보자면, 아래와 같이 정리될 수 있을것 같습니다.

  

  

FDT

Flex builder

리팩토링 안정성

왠만해서 빼놓고 지나가는거 없음

리팩토링 했을때 엄하게 빼놓는게 종종 있음

Flex SDK (mx framework) 와의 연계성

거의 수동으로 처리해야함… 좋지 않음

왠만한건 다 자동화

프로젝트 자동화 (라이브러리 프로젝트, Flex 프로젝트, ActionScript 프로젝트 등의 상세함)

Flash Project 하나로 통합되어 있음. Run, Debug 메뉴에서 상세화 됨

목적별로 프로젝트가 존재하기 때문에 쉽게 접근 할 수 있음

실시간 에러정보

엄청 깐깐, 에러정보에 대한 상세 설정 가능

Flash 와 연계할때, 순수 액션스크립트 코딩용으로 사용하다보면 삑사리 나서 뻗어버리는 경우가 종종 있음

Flash 와의 연계성

fla 와의 연계성이 어느정도 존재

Flash 와 완전한 독자노선을 걸음

에디터로서의 기능

우수

좀 나쁨

디자인 뷰 (live preview)

없음

있음

  

뭐 쓸건 많은데, 지금 시점에서는 쓸게 없네요…;;; 일단 FDT 와 Flex builder 의 차이점을 가르는 가장 큰 요소는Flex builder 의 mx framework 과의 연계성 입니다. FDT 는 어디까지나 ActionScript 를 기준으로만들어진 물건이라서 ActionScript 편집 상황에 있어서 Flex builder 보다 굉장히 우수한 기능들을 제공해줍니다. 하지만, Flex builder 는 ActionScript 편집능력은 조금 떨어지는 편이지만, mx framework를 사용하는데 있어서 왠만한건 다 자동화 시켜준다는 장점이 있죠. FDT 와 Flex bulder 를 선택하는데 있어서 기준이될만한 점도 이와 같습니다.

  

mxframework 를 충분히 활용해서 여러가지 자동화를 필요로 하는분들이라면 뭐 볼것도 없이 그냥 Flex builder입니다. 하지만, 자기 자신이 mx package 를 거의 사용하지 않고, Flash 를 사용하거나 해서, 거의 flashpackage 만 사용하는 순수 ActionScript 만을 사용하는 개발자라면 FDT 가 훨씬 우수한 기능들을 여러가지 제공해줍니다. 뭐 쉽게 이야기해서 Flash Develop 을 기준으로 mx framework 의 디자인뷰, 빌드 자동화 등을갖춘것이 Flex builder 라면, 순수하게 ActionScript 편집능력만으로 강화한 것이 FDT 입니다.

  

이 름에도 알수 있다싶이 FDT 의 F 는 Flash 이지만, Flex builder 의 F 는 Flex 이지요. 자신의 성향이Flex 보다 Flash 에 가깝다면 FDT 가 적절한 선택이 될 것입니다. 일단, 전 mx framework 를 별로 좋아하지않기 때문에…;;; FDT 를 선택했습니다.

  

아… 그리고, 중요한 것은… FDT 와 Flex builder 를 같이 깔면 X됩니다. 둘 다 망가져요. ㅡ ㄴ ㅡ;;; Flexbuilder 를 독립 버전으로 따로 깔든지 하세요. 둘을 하나의 eclipse 상에 같이 설치하면 사단 납니다.

  

▶ FDT 에서 프로젝트 만들기

Flexbuilder 가 FlexProject(Web app, AIR app), ActionScript Project, LibraryProject 의 세가지로 세분화 되는데 비해서, FDT 는 Flash Project 하나로 통합됩니다. 이건 일차적으로는"엥?" 할 수 있어도, 작업하는데 있어서 꽤 큰 유연성을 주기도 합니다. 그건 진행하면서 천천히 이야기해보기로 하고… 일단은프로젝트 만들기부터 살펴보도록 하죠.

  

New Flash Project 를 선택해서 Project 를 생성하면

  

이 런식으로 Project 만들기가 나오게 됩니다. 여기서 중요한 것은 Project Language 입니다. FDT 의 주요 장점중에 하나이지요. Flex builder 에서 ActionScript project 가 playerglobal.swc 를 임포트하고, Flex project(web app) 이 거기에 mx package 를 더하고, Flex project(AIR app)이 AIR package 를 더한다고 치면, FDT 는 이 기반 코어라이브러리를 선택해서 포함시킬 수 있습니다. Select 를눌러보면

  

이 렇게 코어 라이브러리를 선택할 수 있습니다. CS3 는 AS3 을 기반으로한 Flash 와 연계할때 선택하면 되고, Flex3SDK 는 mx package 를 추가시킨 것이고, Flex3 SDK with AIR 는 AIR packge 를 추가시킨것입니다. Pure AS3 Flex3 는 playerglobal.swc 만을 포함시킨 다고 생각하면 됩니다. 이 부분은 약간셋팅이 필요한데요. Configure Defaults 버튼을 눌러보면

  

이 런식의 설정창이 뜨면서 코어 라이브러리 설정을 할 수 있게 해줍니다. 뭐 일단 FDT 가 기본적으로 제공해주는것은 저 세가지이지만, 필요에 따라서는 자기 자신만의 코어 라이브러리를 설정할 수도 있다는 것이겠지요. Next 를 눌러보면

  

이런식으로 기반 라이브러리를 설정하는 창이 나옵니다. Add Linked Libraries 를 눌러보면

  

이런 식으로 라이브러리 추가창이 나오구요. Add… 를 누르면

  

이 런식으로 자신이 보유한 라이브러리들을 주욱~ 선택할 수 있게 해줍니다. 이 창에서 New 와 Edit 를 통해서 자신이 사용하는라이브러리들을 추가시키거나 수정해 놓으면 됩니다. 이 부분이 Flex builder 에 비해서 편리한 기능이죠. Flexbuilder 는 폴더로 되어있는 라이브러리를 추가시킬때 매번 폴더 선택을 통해서 찾아야 하지만, FDT 는 이런식으로 설정을보관해놓을수 있습니다. 작은 부분이지만, 작업하는데 있어서 짜증을 줄여줍니다. 라이브러리들을 선택해서 OK 를 누릅니다.

  

그 러면 이렇게 라이브러리들을 포함된 것을 알 수 있습니다. 그러면 이제 Create Source Folder… 를 눌러서 자신이작업할 소스폴더를 생성합니다. FDT 에서 중요한 것은 Flex builder 가 소스들을 폴더기준으로 인식하는데 비해서,FDT 는 반드시 Source Folder 안에 소스들이 존재해야 한다는 것입니다. 그냥 일반 Folder 에 소스들을넣어놓으면 정의추적 부터 시작해서 에디터의 모든 기능들이 마비됩니다.

  

이런식으로 소스폴더를 만듭니다.

  

그러면 이런식으로 대충의 라이브러리부터 시작해서, 작업폴더들까지 대충 갖춰지게 되었습니다. Finish 를 누르면 이제 프로젝트가 생성되게 됩니다.

  

이렇게 정상적으로 만들어졌습니다. package root 는 src 로 잡히게 되니 주의하세요.

  

▶ FDT 에서 Debug 하기

간단하게 코딩을 해보겠습니다.

  

우선 swf 로 컴파일할 class 를 하나 만듭니다.

  

간단한 코딩을 하고, 14 번째 앞대가리에 더블클릭을 해서, 디버그 break point 도 하나 만들어둡니다.

  

그리고, 상단의 Debug… 을 눌러서 새로운 Debug 를 하나 만듭니다.

  

그 러면 이런 창이 나오는데 FDT AS3 Application 에서 오른클릭을 한 다음에 새로운 Debug 를 만들어줍니다.Flex builder 에서는 이런것들을 자동으로 지원해줘서 걍 사용하면 되는데, FDT 의 경우엔 이런식으로 수동 생성에익숙해지는것이 좀 더 좋습니다. 왜냐하면, 기능의 많은 부분을 이곳에서 직접 지정할 수가 있거든요…

  

새로운 Debug 를 만들면 위와 같은 화면이 나오는데요. 간단하게 이름을 써주고, Project 와 Main Class, output 을 지정해줍니다.

  

뭐 요런식으로 간단하게 써줍니다. 이제 이 Debug 는 ExampleSwc class 를 bin/example_debug.swf 로 컴파일 하게 됩니다. 그러면 옆쪽에 있는 옵션탭들을 하나씩 알아보도록 하죠.

  

Flex SDK 는 프로젝트를 시작할때 지정했던 코어 라이브러리를 재지정 할 수 있습니다.

  

CompilerArguments 에서는 swf 의 사이즈, background color, frame rate 등을 지정할 수 있습니다.도큐먼트 사이즈, fps 등을 지정하려면 이 부분에서 지정하면 됩니다. Flex builder 가 meta tag 를 사용하는것에 비해, FDT 는 이렇게 바꿉니다. (meta tag 가 code assist 가 나오질 않아서 사용하는걸 별로 안좋아하는편인지라…;;; 되는지 안되는지는 확인을 못하겠네요. 아마 될수도 있으니 확인해보세요.)

  

StartSWF 에서 Launch SWF 를 지정하면 컴파일이 완료된 이후 실행시킬 swf 를 지정할 수 있습니다. 뭐 만일load.swf 를 컴파일 한 이후에 그 swf 를 로드해서 보여주는 역할을 하는 root.swf 를 실행해야 한다할 경우엔지정을 해주면 되겠죠. 그리고, Debug 상황에서 FlashVars 를 넣어주기 때문에 테스트를 할때 도움이 크게 됩니다.Ant tasks 나 Common 은 설명하려면 복잡하기 때문에 넘기도록 하겠습니다.

  

지정을 하고 나서 Debug 를 실행하면 이런식으로 Debug perspective 로 전환되면서 Debug 가 시작됩니다. break point 등도 제대로 실행이 되죠.

  

그리고, 이렇게 flash player 가 뜨면서

  

Console 에도 정상적으로 trace 가 찍히게 됩니다. break point 등을 지정할때는 창전환 유도를 하지만, 지정하지 않았을때는 그냥 player 만 뜨게 할 수 있습니다.

  

조 금 안타까운점은 Flex builder 에 비해서는 약간 컴파일 시간이 늦는 편입니다. Flex builder 가 최적화를통해서 컴파일 가속화를 하는데 비해서, FDT 는 쌩으로 컴파일 해버리거든요. 뭐 초단위 차이이긴 하지만, 약간 불편하긴하죠...

  

▶ FDT 에서 swc 만들기

Flexbuilder 의 Library project 처럼 swc 를 컴파일 하게도 할 수 있습니다. 요 위에서 말했듯이 FDT 는Flash Project 하나만을 지원합니다. 이 하나의 프로젝트에서 여러가지 Run 과 Debug 를 지정해서 Flexbuilder 가 지원하는 여러가지 작업들을 할 수 있는거죠. 뭐 취향차이이긴 하지만, 개인적으로는 이런 방식이 좀 더 마음에드네요…;;;

  

Run… 을 선택해서 새로운 Run 을 만들도록 합니다.

  

FDT AS3 Library 를 새로 생성합니다.

  

아까와 마찬가지로 지정해줍니다.

  

실행해보면 bin 폴더에 swc 가 정상적으로 만들어진것을 확인할 수 있습니다.

  

▶ FDT 에서 flash compile 명령 내리기

src 폴더에 Fla 파일을 하나 만듭니다. (사실 src 에 만들면 안되는것이긴 하지만…;;; path 문제가 있으므로 그냥 src 에 만들도록 하죠…)

  

뭐 이름을 붙여서 만들어줍니다.

  

새로운 Run 을 만들어줍니다.

  

대 충 이젠 감이 잡히시죠? FDT Flash IDE 를 선택해서 새로운 Flash 연계 Run 을 만듭니다. operation 의publish 를 설명하자면, publish 는 그냥 flash 에 compile 명령만을 내리게 되고 (아무것도 안뜨고 그냥컴파일만 됩니다.), TestMovie 는 컴파일을 한 이후에 Flash 에 TestMovie 창이 뜨게 해줍니다. Debug용도라면 TestMovie 를 선택하면 됩니다.

  

Miscellaneous 에서는 Flash 의 컴파일 이후에 특정 swf 를 실행할 수 있게 해줍니다. 뭐, 여러가지 용도로 사용할 수 있겠죠. 아쉬운점은 이런 기능을 통해서 FDT 상의 Console 을 사용할 수 있다면 아주 베리베리굿잡 이겠지만, 그렇게는 되지 않습니다.걍 뜨기만 할뿐 trace 가 Console 에 뜨지는 않으므로, 딱히 유용한 기능은 아닙니다. 단지… 확인을 할 수있을뿐…;;; 그렇게 복잡한 빌드체계는 Ant 를 통해서 하면 되지 않을까 싶네요. (FDT 는 Ant 사용을 매우 권장하는편입니다) 뭐 대충 옵션들을 지정한 이후에 Run 을 실행시켜보면

  

이렇게 flash 가 실행되면서

  

요렇게 TestMovie 가 뜨게 되고, 만일 Miscellaneous 를 지정해 놓았다면

  

요렇게 FDT 상에서 swf 가 나옵니다. 딱히 도움되는것은 아니니… Miscellaneous 기능 지정은 딱히 추천하지 않습니다.

  

뭐 보는바와 같이 Flash 와 연계플레이를 중요시 하는 개발자라면 Flex builder 보다는 FDT 가 더 좋은 선택일것입니다. 완벽하게 독자노선을 걷는 Flex builder 랑은 틀리게 FDT 는 Flash 친화적이거든요...

  

▶ FDT 의 편리기능 : Ctrl+1

뭐 코딩하는데 도움이 되는 FDT 의 기능들을 소개해보려 합니다. FDT 가 지원하는 막강 화력중에 가장 돋보이는건 Ctrl+1 인데요… 이거 한방으로 코딩이 매우 해피해지게 됩니다.

  

_test라는 변수를 하나 만듭니다. 옆에 ! 가 뜨는것은 private 멤버의 경우 코드상에 사용되지 않을때, "이 멤버는 사용되지않는데 코드상에 있다… 왜 만들었는데? 어? 코딩 막하는거야?" 뭐 이런 의미로 알려주는 겁니다.

  

변 수상에 포인터를 두고, Ctrl+1 을 누르면 위와 같은게 나오는데요. getter 와 setter 를 동시에 만들수도 있고,read-only 가 될 getter 만 만들수도 있고, write-only 가 될 setter 만들을 만들수도 있습니다.Create getter and setter 를 실행해보면

  

요렇게 코드상에 getter 와 setter 가 자동으로 만들어지게 됩니다. 코딩할때 은근히 피로를 줄여주는 멋좽이 기능입니다. 이런 것 이외에도

  

요렇게 EventListner 상에 현재 코드상에 존재하지 않는 이벤트 핸들러를 지정하면 보다시피, 에러가 빵! 하고 뜨죠… 여기서 Ctrl+1 을 누르면

  

  

요렇게 이벤트 핸들러 메서드를 자동으로 만들어줍니다. Shift+Tab 을 눌러서 private, method name, parameter, return type 등을 수정할 수 있는데, 뭐 별달리…;;; 쓸만하지는 않더군요.

  

코딩하는데 있어서 타이핑 양이 증가하는 주요한 이유중에서 하나가 이벤트 핸들러랑 getter/setter 인데, 이런 기능을 자동화 시켜주므로 은근히 도움이 만히 됩니다.

  

▶ FDT 의 편리기능 : Fomatter

코딩중에 오른클릭을 하고, Source/Format 을 누르면,

  

이렇게 개떡이 된 코드도…

  

깔끔하게 재정렬이 됩니다. (왠만해서 단축키로 쓰는게 좋겠죠…)

  

코드 스타일에 대한 설정은

설 정창에서 FDT > CodeStyle > Formatter 에서 설정할 수 있습니다. 자기 자신에게 맞는 형태로맞춰두면 여러모로 도움이 크게 됩니다. 물론 수동으로 열심히 알콩달콩 맞춰놓는것에 비하면 기계적 구현이 좀 어설픈 감이 없지않아 있지만, 코더가 아닌, 개발자로서 편하게 살기엔 이런 기능에 의존하는게 스트레스를 줄이는데 도움이 크게 되겠죠. 꽤상세하고, 편리하게 설정이 가능하니 추천하고 싶습니다.

  

FDT 의 이 특유의 코드 포맷팅 덕분에 요새는 어떤 라이브러리를 사용할때 "얘 FDT 사용하는구나…" 하면서 단박에 알아보겠더군요.

  

▶ FDT 의 편리기능 : Ctrl+Space

뭐Ctrl+Space 를 통한 CodeAssist 는 일반화된 기능이긴 하지만… 걍 써봅니다. CodeAssist 기능은 사실Flex builder 가 더 좋습니다. meta tag 에 대한 감지를 통해 이벤트 리스너를 추천해주기도 하고… 꽤 좋죠.FDT 가 CodeAssist 자동감지가 좀 떨어지는 편이기 때문에 사용하다보면 Ctrl+Space 를 자주 눌러야 하는편입니다.

  

뭐 요렇게 쓰다가 Ctrl+Space 를 누르면

  

이렇게 어시스트 기능이 활성화 됩니다. 기억력 감퇴를 호소하는 개발자에게 매우 좋겠죠…;;;

참고로 FDT 에서는 : 에 대한 코드 어시스트 감지가 되지 않는데요. 이건

  

설 정에서 Auto activation triggers for AS2 에 : 을 추가시켜주면 됩니다. ㅡ ㄴ ㅡ;;; AS3 라도됩니다. 이런걸 보고 훼이크 라고 하죠… 그리고, Activation delay 역시 기본적으로는 300~500 정도로 맞춰지는편이므로, 빠르게 나오는걸 원하신다면 100 정도로 셋팅하는것이 좋습니다.

  

▶ FDT 의 편리기능 : Ctrl + O

손에 익으면 편리한 기능중 하나인데… 코딩중에 Ctrl+O 를 누르면

  

요 런창이 나옵니다. 멤버 검색기능 인데요… 코드량이 길어져서 스크롤바를 하염없이 왔다갔다 해야할때 이 기능을 사용하면 마우스를걸신들린듯 미치도록 비벼대거나, PageUp, PageDown key 를 미친듯 눌러대거나 할 필요없이 멤버를 선택할 수있습니다.

  

예를 들어 addedToStage 를 선택하고 Enter 를 누르면

  

이렇게 포인터가 바로 addedToStage 로 이동하게 됩니다. 코드량이 500줄 넘어가기 시작하면 눈물나게 고마워지는 기능입니다.

  

▶ FDT 의 편리기능 : 리팩토링

뭐 리팩토링은 Flex builder 가 3.0 에 들어서면서 추가된 기능인데요. Adobe 하는짓이 늘 그렇듯 경우에 따라서어정쩡하게 바꿔주지 않고 지나간다든가 하면서 날림으로 리팩토링 하는 경우가 있기 때문에, FDT 의 리팩토링이 좀 돋보이는편입니다. FDT 로 코딩을 한 이후로는 좀 불안한 마음을 안가지고 리팩토링을 하는것 같네요.

  

뭐 클래스든, 메서드든 선택한 이후에 Refactor/Rename 을 하면

  

이렇게 리팩토링 설정이 뜨게 되고… 이름을 바꿔준 다음 OK 를 누르면 이 해당하는 코드를 사용하는 모든 코드들의 이름이 변경되게 됩니다.

최초에 단축키가 좀 그지같이 설정되어 있으므로…

  

설정창에서 단축키를 새로 만들어주는것이 정신건강에 좋습니다.

  

▶ FDT 의 편리기능 : Ctrl + T 상속관계 알아보기

상속이 복잡하게 구성되는 코딩을 할때 도움이 되는 경우입니다. 코딩을 하다가 Ctrl+T 를 누르면

  

이렇게 상속관계가 주르륵 보여지게 됩니다. 상속되는 class 를 선택한 다음에 Enter 를 누르면

  

이 렇게 바로 해당하는 소스코드가 나오게 됩니다. 상속관계가 2~3 단계를 넘어서기 시작하면서, 이 메서드가 거기 있는건가, 여기있는건가… 헤롱대기 시작할때 꽤 도움이 되는 기능입니다. 그리고… 무엇보다 Flex builder 에서는 보여주지 않는Sprite 같은 것들이라도 선택하면

  

이렇게 파싱해서 보여줍니다. 뭐 엄청나게 도움이 되는 기능은 아니지만, 자잘한 도움을 주는 편입니다.

  

▶ FDT 의 편리기능 : Ctrl+U 포함관계 보여주기

뭐 쉽게 이야기해서 코딩하다 Ctrl+U 를 눌러보면 현재 코드에 포함된 여러가지 class 들의 포함관계를 보여줍니다. 포함관계가 복잡한 코드의 경우에 빠르게 검색이 가능합니다.

  

▶ FDT 의 편리기능 : Ctrl+R 사용된 코드 검색

간단한 검색이지만… 은근히 도움이 되는데요.

init() 에 포인터를 두고 Ctrl+R 을 누르면

  

이 멤버가 사용된 모든 코드들을 검색해서 보여줍니다. 이 멤버에 대한 사용성을 검색할때 도움이 됩니다.

  

▶ FDT 설정하기 : 단축키

대충 단축키는 두가지 정도는 필수적으로 설정해 놓는게 좋은데요.

  

아까전 이야기 했던 리팩코링과

  

Debug 입니다.

  

아주 자주 사용하게 될 것이 뻔한… 이 두가지가 편리하게 설정되어 있지 않은 편이므로, 왠만해서 설정하는게 좋습니다.

  

▶ FDT 설정하기 : Formatter

아까도 나온 이야기지만, 자기 자신에게 맞게 설정해 두면 꽤 큰 도움이 됩니다.

  

▶ FDT 설정하기 : Code highlight

FDT 의 컬러링 설정은 조금 머시기한 면이 없지 않아 있습니다. 구분이 잘 안가는 편이죠. 뭐 마음에 든다면 할말이 없지만…;;; 마음에 안들 가능성이 높기 때문에 조금 수정을 해주는게 좋습니다.

  

▶ FDT 설정하기 : Folding

코 드가 맨처음 열릴때 접혀져 있을것들을 설정합니다. FDT 의 초기설정이 꽤 많이 접어놓기 때문에…;;; 접혀서 불편하다 싶으면여기서 초기에 접혀있을 것들을 풀어주면 됩니다. 저같은 경우엔 주석참고를 많이 하는 편이라서 import 빼고는 다풀어놓았습니다.

  

▶ FDT 설정하기 : 경고, 에러 알림

FDT 의 초기설정은 코딩에 대해서 엄청나게 빡빡하게 검사를 하는 편입니다. FDT 가 아닌 에디터로 코딩하다가 그 소스를 FDT 로 열때 맨처음 보게 될 것은 엄청난 숫자의 경고, 에러들일 것입니다.

  

특 히 a(); 처럼 뒤에 ; 세미콜론을 붙여주지 않은것마저 경고로 체크해버리는데요. 이건 자기 자신의 코드는 상관이 없는데 외부라이브러리를 사용할때 경고가 떠버리므로 굉장히 불편합니다. 적절한 셋팅을 통해서 너무 심하게 빡빡한 조건은 풀어주는것이좋습니다. 뭐 너무 풀어버리면 정확한 코딩을 도와주는 FDT 의 이런 장점을 사용할 수 없게 되므로, 적당한 선에서 풀어주세요.

  

▶ 마무리 하면서…

위 에서도 이야기 했듯 Flex builder 가 mx framework 에 대한 자동화를 이루어주는 멋진 툴이라면, FDT 는순수 ActionScript 개발자에게 꽤 강력한 기능을 제공해주는 툴입니다. 컨셉의 차이를 이야기 하자면, Flexbuilder 가 대중성을 목표로 하기 때문에 편리한 툴이라고 이야기 할 수 있다면, FDT 는 전문성을 목표로 하기 때문에강력한 툴이라고 이야기 할 수 있을것 같네요.

  

적 당한 선에서 제한하며 편리함을 추구하는 Flex builder 와는 틀리게, 상당히 자유롭고 강력한 기능을 제공하지만, 대신원리적인 부분의 지식을 꽤 많이 요구하는 편입니다. 일단 간단하게나마 그냥 버튼 �~ 누르면 알아서 해주는 Flexbuilder 와는 틀리게 Debug, Run 에 있어서의 세세한 셋팅을 많이 요구하는 편이죠. 하지만, FlashDevelop 처럼 완전히 쌩짜로 셋팅해야 하는것에 비해서는 나름 편리하게 구현해주기도 합니다. 평소에 그냥 무심하게 지나치던기능들도 FDT 를 사용하다보면 다시 한 번 생각하게 하게 되는 뭐 그런게 있습니다. 좀 잠깐의 부담을 통해서, 그만큼 더편리해지는게 FDT 가 Flex builder 에 비해서 돋보이는 장점이 아닐까 싶네요.

  

좀 더 제대로 짤만한 도구를 원하시는 분들이라면 큰 도움이 될 것 입니다.

FDT
Error: could not find JRE
Error: could not find Java 2 Runtime Environment.
이런 에러가 뜨는데요.. jre 환경변수 설정도 다했구요, 왜 빌드가 안될까요?
Flex Sdk를 설치해야 되나요? 이글따라 다운하면 안되는건가요>ㅠㅠ
플러그인 다운받아서 사용해보니 30일 무료 사용이라 되어있더군요.
혹시 무료로 할 수 있는 방법이나 구입을 한다면 얼마정도에 구입이 가능한지 궁금합니다.
얼사마 님의 경우 어떻게 사용하고 계시는지도 궁금합니다. ^^

 
 
 

Flash/Lecture

얼사마 2007. 12. 27. 16:56

Flash로 만든 app를 웹에서 볼때,

IE의 경우 embed 태그에 wmode가 transparent로 되어 있을 경우,

한글 입력이 되지 않는다.

 

주의 요망~

 
 
 

Flash/Lecture

얼사마 2007. 11. 19. 13:53

Flash가 version up이 되감에 따라,

Flash 개발자의 욕구를 충족시키기 위해,

좀 더 많은 것들을 할 수 있도록 자유를 주기위해서,

점점 더 낮은 수준(low level)로 모양새가 옮겨지고 있다.

 

기존의 flash로도 충분히 구현할 수 있었던 것들도 많지만,

web 2.0이다 뭐다 해서 요즘 web의 모양새(?)가 조금씩 변모하고 있고.

그 모양새를 만들기 위해 ajax, flash가 사용되고 있다.

 

간단한 광고(banner)정도 일땐 그닥 문제라 볼 수 없었으나,

크게는 어플리케이션 역할을 하는 ajax, flash는

이제 좀 더 많은 부분을 신경 써야 한다.

 

그중에 가장 눈에 띄지 않지만, 중요한 것이 바로 메모리 누수(memory leak).

as3.0은 실로 java와 모양새(?)가 흡사해지면서,

개발자에게 많은 것을 떠 넘긴 셈이다.

 

대게 저지르는 실수가 이런 것이다.

1. 인스턴스를 만들고,

2. 이벤트 리스터를 등록하고,

3. 이벤트 핸들링.

그리고 끝....

이러면 해당 인스턴스는 특정 함수의 로컬 변수라도 계속 적으로 메모리에 쌓이게 된다.

 

class A{

    function B(){

        for (i=0;i<100;i++){

            var o:Object = new Object();

            o.loadSomething();

            o.addEventListener(Event.someEvent, C);

        }

    }

    function C(){

        eventHandling();

    }

}

 

이런식으로 코딩하게 되면 o라는 인스턴스가 100개가 만들어지고,

o에 뭔가를 로딩하고 난후 이벤트 처리가 완료 되었더라도,

그 100개는 메모리에서 지워지지 않게 된다.

 

    function C(e:Event){

        eventHandling();

        e.target.removeEventListener(Event.someEvent, C);

        e.target = null;

    }

 

이와 같은 식으로 모든 처리가 끝난후

더 이상 해당 인스턴스가 필요가 없을 경우,

그 인스턴스의 모든 event listener를 삭제한 후 instance pointer를 null로 해줘야한다.

 

이렇게 하면 메모리 해제가 일어나지 않지만,

garbage collector가 일정 시간 후에 인스턴스들을 체크해서

인스턴스가 참조하고 있거나 참조 받는 것이 없다면,

메모리에서 해제시키게 된다.

 

이런 류의 오류가 가장 빈번하다.