'Dev/Flex'에 해당되는 글 28건
2010.03.27 21:20
Flash Builder 4가 약속했던 것 보다 더 늦게 출시가 되었습니다. 그만큼 기대가 너무 컸던 것일까요? 좀 만져보니 한가지씩 맘에 안드는 것들이 눈에 보이기 시작하네요. 불평분자가 되는 것은 싫습니다만, 문제점에 대한 해결책을 찾는 좋은 방법은 다른 분들의 의견을 듣는 것이기 때문에 글을 작성해보겠습니다. 이 글을 읽으시는 분들께서도 버그나 불편한 점 등을 알려주시면 감사하겠습니다 ;)

1. Flash Builder 4가 단독형으로 설치는 잘 되었으나 플러그인 형식으로는 설치가 안되는 문제가 나타났습니다. 엉뚱하게도 Eclipse 의 버전문제로 이유가 모아졌었습니다. 하지만 엉뚱한 것을 원인으로 생각한 것이더군요. (앞서 포스트에서 말씀드렸던 것 같이 Beta 2 까지는 Eclipse Ganymede (3.4)를 기반으로 만들어졌습니다만, 정식판에서는 Eclipse Galileo (3.5)를 기반으로 만들어져있습니다. 기존의 Beta 판에서는 버전간 호환문제로 Ganymede 에 설치하기를 권유했습니다만, 정식판에서는 Galileo 기반이기때문에 Galileo 에 설치하셔도 상관없습니다. 저도 Galieo(3.5.2)에 설치를 하였습니다.)
설치가 안되는 증상은, 설치 진행시 설치진행 프로그래스바 1칸에서 정지되어버리는 것인데, 맹기완님도 동일한 문제로 단독버전을 설치하셨다고 하시더군요. 물론 아무런 문제 없이 설치 되시는 분도 계셨습니다. 설치 안되는 문제는 한글폴더명 때문이더군요. 지용호님 블로그에 정영훈님이 써주신 덧글을 보고 알았습니다. :-S
설치를 위해 설치파일을 실행하면 추출을 위해 아래와 같이 폴더를 지정하게 됩니다.

설치파일 추출

설치파일 추출


기본위치로 바탕화면에 폴더가 생성이 되는데, 저 한글 폴더명때문에 문제가 되더군요. 바탕화면이 아니라 c 드라이브에 바로 폴더생성해서 압축을 풀었더니 잘 설치가 됩니다.  (웃기게도 단독버전또한 동일하게 바탕화면에 추출이 됩니다만, 설치에 문제는 없습니다. 왜 플러그인만 안되는지 모르겠네요.)

설치가 된 후에는 지용호님의 글에서 언급한 Run, Debug 버튼이 사라지는 문제는 저도 동일하게 나타나더군요. 글 참고하시면 좋겠습니다. 참고로 저는 Eclipse Classic 3.5.2 를 다운받아 설치하였습니다.

2. Flex Project 를 생성 시 Flex SDK 를 3.5를 설정하게 되면 아래와 같은 에러가 발생합니다.
Description Resource Path Location Type
unable to open 'C:\Program Files\Adobe\Adobe Flash Builder 4 Plug-in\sdks\3.5.0\frameworks\locale\ko_KR'    프로젝트 명 Unknown    Flex Problem
이는 컴파일러 옵션에 '-locale ko_KR' 라는 명령행이 붙어서 나는 에러입니다. Flex 3.5 SDK 에는 locale 폴더에 ko_KR이 존재하지 않습니다. Flex 4.0 에는 ko_KR을 포함한 16개 언어에 대한 파일들이 존재하는데, 이때문에 기본적으로 '-locale ko_KR' 로 잡아주는 것 같습니다.

Flex Complier 설정

Flex Complier 설정


이를 '-locale en_US' 로 변경하여 주시면 에러는 나지 않습니다. (Flex 4.0 에 있는 ko_KR도 뭐 한글화는 안되있는 것 같긴 한데 말이죠...)

3. subversive 를 설치하면 빌더 먹통 된답니다. 저는 subclipse 만 써보았는데, 마찬가지 SVN을 위한 플러그인이라고 하더군요.  연찬익군이 알려줘서 알게 되었네요. 저는 실제 설치해본적이 없어서 ... =ㅂ= 아무튼 조심하시길;

4. 디자인뷰에서 'Show Surrounding Containers' 기능은 지원 안되는 걸까요?

3.5 SDK를 사용

3.5 SDK를 사용

4.0 SDK 를 사용

4.0 SDK 를 사용



위의 이미지에서 볼 수 있듯, 3.5 SDK로 생성한 프로젝트에서는 해당 기능이 동작합니다만, 4.0 SDK로 생성한 프로젝트에서는 기능이 비활성화 되네요. 구현이 불가능한건지... 잘 쓰던 기능이라 아쉽네요.

5. Dynamic Help 가 정상동작하지 않네요. 연찬익군의 제보에 따르면 Beta2 에서는 정상동작하였다고 하는데 정식판에서는 제대로 동작하지 않습니다. 예를 들어 코드를 this.dispatch 라고 입력하였을 때 Dynamic Help 창에 아래와 같이 뜨게 됩니다.

Dynamic Help 화면

Dynamic Help 화면


이때 dispatchEvent 를 클릭하게 되면 dispatchEvent 에 대한 정보가 나와야되는데, 도움말 메인 화면이 뜨네요; mx.core.UIComponent 나 Boolean 은 제대로 뜹니다. 일부 API 를 못찾는 것 같습니다.

엉뚱한 화면이 나오는 Help

엉뚱한 화면이 나오는 Help




Flash Builder 4가 정식출시 되었지만, 2% 부족한 모습이 눈에 보입니다. 좀 안타깝네요. =ㅂ=; 하지만 뭐 알아서 피해가야죠...;
다른 버그들이나 참고할 정보들이 알려지는 데로 해결책과 함께 업데이트 하도록 하겠습니다. 함께해요~
저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2010.03.28 22:50 신고 | PERMALINK | EDIT/DEL | REPLY
덕분에 삽질을 좀 피할 수 있겠네요.
근데 저는 왜 플러그인으로 아무 문제없이 잘 됐을까요...
Favicon of http://as3.kr BlogIcon 우야꼬 | 2010.03.30 10:07 신고 | PERMALINK | EDIT/DEL | REPLY
와;;; 내가 진짜 운이 좋았던 거구나;;;
겁나 고생한게 눈에 보이네...
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2010.04.04 10:54 신고 | PERMALINK | EDIT/DEL | REPLY
음.. Help 문제는..
Adobe Help의 설정에서 Accessibility Mode를 On하면 잘 됨..
해결이라기보단.. 레퍼런스를 브라우저로 열어버리는..
Subversive는... 음.. 난 이참에 Git로.. –_-;
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2010.04.06 15:44 신고 | PERMALINK | EDIT/DEL | REPLY
원래부터 subversion 사용해서 문제는 없었음...
Favicon of http://uxer.kr BlogIcon LazyArtist | 2010.04.09 11:03 신고 | PERMALINK | EDIT/DEL | REPLY
빌더4 정식버전이 문제가 많네요...
저도 포스트 썼는데요... 트랙백이 안걸리네요...ㅎㅎ
제 불만사항은 아래 적어놨어요~
http://uxer.kr/146
Favicon of http://hazbola.tistory.com BlogIcon hazbola | 2010.04.19 23:13 신고 | PERMALINK | EDIT/DEL | REPLY
후압 저도 플러그인을 많이 쓰고있지만 svn만 안쓰고있었는데 형님 덕분에 좋은 정보 얻어 갑니다 감사합니다
쫑쫑쫑 | 2010.06.16 15:26 신고 | PERMALINK | EDIT/DEL | REPLY
한글 폴더 명 때문에 안깔리는거 였군요 ~ 고생한게 주마등 처럼 지나갑니다 ㅠ., 큭.

좋은 정보 감사합니다. ^^
Favicon of http://leejangsuk.tistory.com/ BlogIcon 이장석 | 2011.04.13 10:11 신고 | PERMALINK | EDIT/DEL | REPLY
상세한 리뷰군요. 글 잘 보았습니다.
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2010.03.25 04:21
우선 Flash Builder 4가 정식 출시된 것을 환영합니다 ;) 아이콘이 책 모양으로 바뀌었네요. 기존에 Flex 4의 상징이던 회색 아이콘이 아니라 약간 맘에 안들기도 합니다만 ^^  나름 봐줄만 하네요 ;)

Flash Builder 4 초기 실행 화면

Flash Builder 4 초기 실행 화면


본론으로 들어가보도록 하겠습니다.
아래의 이미지에서 확인 할 수 있듯, Flex Builder 3 와 마찬가지 Flash Builder 4 에서도 ANT를 지원하지만, 동일하게 JDT는 없는 관계로 Flash Builder 4에서도 JDT 및 기타 플러그인을 설치하여야 합니다. (설치하면 아래의 이미지에서 ANT View 가 나오겠죠?)

ANT View 가 없군요!!!

ANT View 가 없군요!!!


Flash Builder Beta 2까지만 하더라도, Eclipse 3.4[각주:1] 버전을 기반으로 제작이 되었던 터라, 기존의 방법으로 JDT 를 설치할 수 있었는데요, Flash Builder 4 가 정식버전으로 나오면서 Eclipse 3.5[각주:2] 를 기반으로 제작이 되어있는 관계로 JDT를 설치하는 방법이 조금은 달라졌습니다. 저처럼 헤매는 분들을 위해 포스트를 남겨봅니다.

Flash Builder 4의 Help 메뉴에서  Install New Software 를 선택하게 되면 아래의 이미지와 같은 화면이 나옵니다. Eclipse 의 경우 기존의 방법과 마찬가지로 'The Eclipse Project Update' 같은 항목을 선택하여 JDT를 설치가능 했습니다만, Flash Builder 4 에서는 해당 항목이 기본적으로 존재하지 않습니다. 아래의 이미지에서와 같이 'Add' 버튼을 눌러 항목을 추가하도록 하겠습니다.

'Add' 버튼을 눌러 항목을 추가

'Add' 버튼을 눌러 항목을 추가


이때 Site는 아래의 이미지와 같은 접속정보를 넣도록 하겠습니다.
Name : The Eclipse Project Updates
Location : http://download.eclipse.org/eclipse/updates/3.5

Site 입력

Site 입력


이렇게 추가가 되면 아래와 같이 해당 항목이 선택이 되며 잠시 뒤 설치할 수 있는 항목들이 나타나게 됩니다. 이때, Flash Builder 4의 기반 Eclipse 버전은 3.5.1 인데 반해, 기본적으로 최신 버전을 설치하려고 할 것이기 때문에 (글 쓰는 시간 기준 3.5.2 버전이 최신) 아래의 'Show only the latest versions of available software' 체크를 풀어서 Eclipse SDK 3.5.1 버전을 설치하도록 하겠습니다.

Eclipse SDK 3.5.1 버전을 설치

Eclipse SDK 3.5.1 버전을 설치


위에서 Next 버튼을 누르게 되면 설치하게 되는 항목에 자세한 내용이 아래의 이미지와 같이 출력이 됩니다. 이때 ANT를 위해 필요한 것들은 1. JDT Plug-in Developer, 2. Java Development Tools 입니다.

Eclipse SDK 3.5.1 버전을 설치

Eclipse SDK 3.5.1 버전을 설치


라이센스 정책에 대해 수락하고 나면 바로 설치 가능합니다. 'Finish' 를 누르시죠!



설치하는 중입니다. 꽤나 오랜 시간이 걸리니 기다려보시기 바랍니다 ;)


설치가 다 되면 재시작을 묻는데 'Yes'를 눌러 재시작 하시도록 하겠습니다.



설치는 종료가 되었습니다. 그런데 문제가 있습니다. =ㅂ=;


Eclipse SDK 를 설치했더니 이클립스 처럼 되어버렸네요 :^( 이럴수가!!!!


아무튼 ANT는 잘 보이는 것을 확인 하실 수 있습니다. Eclipse 에 Plugin 형식으로 설치하는 것이 나을런지도 모르겠네요 ;^) 아마도 위의 필요한 플러그인만 따로 복사하면 될 것 같기도 합니다만... ^^;
  1. Eclipse Ganymede (3.4) - http://www.eclipse.org/downloads/packages/release/ganymede/r [본문으로]
  2. Eclipse Galileo (3.5) - http://www.eclipse.org/downloads/packages/release/galileo/r [본문으로]
저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2010.03.25 11:01 신고 | PERMALINK | EDIT/DEL | REPLY
초기 실행할때 이미지 뜨는거 다 저렇게 바뀌는거 같더라고요.
저번에 플래시 캠프갔었을때, 플래시 CS5도 저 모양으로 뜨고, 디바이스센트럴 CS5도 저 모양으로 뜨고.. (물론 다 베타였지만요)

근데 형님 플래시빌더 구입하신거에요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.25 11:55 신고 | PERMALINK | EDIT/DEL
60일.. ㅋ
Favicon of http://cometkorea.tistory.com BlogIcon comet | 2010.04.01 13:56 신고 | PERMALINK | EDIT/DEL | REPLY
으으 설치하고 나니 전부 한글로 바껴버리네요;; 처음 설치할때 영문버젼으로 설치를 해야겠군요 ㅜ_ㅜ
한글로 나오니 하나도 못알아먹겠다는 흑 ㅜ_ㅜ
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2010.04.06 15:15 신고 | PERMALINK | EDIT/DEL | REPLY
멋진 글~~~~
Favicon of http://blog.83rpm.com BlogIcon 동범이 | 2010.09.30 09:07 신고 | PERMALINK | EDIT/DEL | REPLY
ANT 설치하려고 검색하다가 글 봤습니다. ㅋ

노가다를 좀 했지만 JDT는 잘 깔았네요. 도움 많이 됐습니다. 트랙백 걸고 갈께요. ^^
리한 | 2010.11.03 18:36 신고 | PERMALINK | EDIT/DEL | REPLY
검신님.. 이블로그 내용대로 하면
말씀하신 문제대로 플래시빌더가 이클립스화(?) 되어버리는데요 ㅠㅠ
Ant 플러그인만 따로 설치하는 방법은 없는건가요?
여러가지로.. 이클립스화 된 플래시빌더는 적응이안되는터라 덧글을 남겨봅니다.
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2010.03.25 04:21
우선 Flash Builder 4가 정식 출시된 것을 환영합니다 ;) 아이콘이 책 모양으로 바뀌었네요. 기존에 Flex 4의 상징이던 회색 아이콘이 아니라 약간 맘에 안들기도 합니다만 ^^  나름 봐줄만 하네요 ;)

Flash Builder 4 초기 실행 화면

Flash Builder 4 초기 실행 화면


본론으로 들어가보도록 하겠습니다.
아래의 이미지에서 확인 할 수 있듯, Flex Builder 3 와 마찬가지 Flash Builder 4 에서도 ANT를 지원하지만, 동일하게 JDT는 없는 관계로 Flash Builder 4에서도 JDT 및 기타 플러그인을 설치하여야 합니다. (설치하면 아래의 이미지에서 ANT View 가 나오겠죠?)

ANT View 가 없군요!!!

ANT View 가 없군요!!!


Flash Builder Beta 2까지만 하더라도, Eclipse 3.4[각주:1] 버전을 기반으로 제작이 되었던 터라, 기존의 방법으로 JDT 를 설치할 수 있었는데요, Flash Builder 4 가 정식버전으로 나오면서 Eclipse 3.5[각주:2] 를 기반으로 제작이 되어있는 관계로 JDT를 설치하는 방법이 조금은 달라졌습니다. 저처럼 헤매는 분들을 위해 포스트를 남겨봅니다.

Flash Builder 4의 Help 메뉴에서  Install New Software 를 선택하게 되면 아래의 이미지와 같은 화면이 나옵니다. Eclipse 의 경우 기존의 방법과 마찬가지로 'The Eclipse Project Update' 같은 항목을 선택하여 JDT를 설치가능 했습니다만, Flash Builder 4 에서는 해당 항목이 기본적으로 존재하지 않습니다. 아래의 이미지에서와 같이 'Add' 버튼을 눌러 항목을 추가하도록 하겠습니다.

'Add' 버튼을 눌러 항목을 추가

'Add' 버튼을 눌러 항목을 추가


이때 Site는 아래의 이미지와 같은 접속정보를 넣도록 하겠습니다.
Name : The Eclipse Project Updates
Location : http://download.eclipse.org/eclipse/updates/3.5

Site 입력

Site 입력


이렇게 추가가 되면 아래와 같이 해당 항목이 선택이 되며 잠시 뒤 설치할 수 있는 항목들이 나타나게 됩니다. 이때, Flash Builder 4의 기반 Eclipse 버전은 3.5.1 인데 반해, 기본적으로 최신 버전을 설치하려고 할 것이기 때문에 (글 쓰는 시간 기준 3.5.2 버전이 최신) 아래의 'Show only the latest versions of available software' 체크를 풀어서 Eclipse SDK 3.5.1 버전을 설치하도록 하겠습니다.

Eclipse SDK 3.5.1 버전을 설치

Eclipse SDK 3.5.1 버전을 설치


위에서 Next 버튼을 누르게 되면 설치하게 되는 항목에 자세한 내용이 아래의 이미지와 같이 출력이 됩니다. 이때 ANT를 위해 필요한 것들은 1. JDT Plug-in Developer, 2. Java Development Tools 입니다.

Eclipse SDK 3.5.1 버전을 설치

Eclipse SDK 3.5.1 버전을 설치


라이센스 정책에 대해 수락하고 나면 바로 설치 가능합니다. 'Finish' 를 누르시죠!



설치하는 중입니다. 꽤나 오랜 시간이 걸리니 기다려보시기 바랍니다 ;)


설치가 다 되면 재시작을 묻는데 'Yes'를 눌러 재시작 하시도록 하겠습니다.



설치는 종료가 되었습니다. 그런데 문제가 있습니다. =ㅂ=;


Eclipse SDK 를 설치했더니 이클립스 처럼 되어버렸네요 :^( 이럴수가!!!!


아무튼 ANT는 잘 보이는 것을 확인 하실 수 있습니다. Eclipse 에 Plugin 형식으로 설치하는 것이 나을런지도 모르겠네요 ;^) 아마도 위의 필요한 플러그인만 따로 복사하면 될 것 같기도 합니다만... ^^;
  1. Eclipse Ganymede (3.4) - http://www.eclipse.org/downloads/packages/release/ganymede/r [본문으로]
  2. Eclipse Galileo (3.5) - http://www.eclipse.org/downloads/packages/release/galileo/r [본문으로]
저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2010.03.25 11:01 신고 | PERMALINK | EDIT/DEL | REPLY
초기 실행할때 이미지 뜨는거 다 저렇게 바뀌는거 같더라고요.
저번에 플래시 캠프갔었을때, 플래시 CS5도 저 모양으로 뜨고, 디바이스센트럴 CS5도 저 모양으로 뜨고.. (물론 다 베타였지만요)

근데 형님 플래시빌더 구입하신거에요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.25 11:55 신고 | PERMALINK | EDIT/DEL
60일.. ㅋ
Favicon of http://cometkorea.tistory.com BlogIcon comet | 2010.04.01 13:56 신고 | PERMALINK | EDIT/DEL | REPLY
으으 설치하고 나니 전부 한글로 바껴버리네요;; 처음 설치할때 영문버젼으로 설치를 해야겠군요 ㅜ_ㅜ
한글로 나오니 하나도 못알아먹겠다는 흑 ㅜ_ㅜ
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2010.04.06 15:15 신고 | PERMALINK | EDIT/DEL | REPLY
멋진 글~~~~
Favicon of http://blog.83rpm.com BlogIcon 동범이 | 2010.09.30 09:07 신고 | PERMALINK | EDIT/DEL | REPLY
ANT 설치하려고 검색하다가 글 봤습니다. ㅋ

노가다를 좀 했지만 JDT는 잘 깔았네요. 도움 많이 됐습니다. 트랙백 걸고 갈께요. ^^
리한 | 2010.11.03 18:36 신고 | PERMALINK | EDIT/DEL | REPLY
검신님.. 이블로그 내용대로 하면
말씀하신 문제대로 플래시빌더가 이클립스화(?) 되어버리는데요 ㅠㅠ
Ant 플러그인만 따로 설치하는 방법은 없는건가요?
여러가지로.. 이클립스화 된 플래시빌더는 적응이안되는터라 덧글을 남겨봅니다.
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2010.03.09 02:00
정말 오랫만에 글을 쓰는 것 같네요. ;) 먹고 살기 바쁜터라 통 블로그에 신경을 못썼습니다. 그래도 꾸준히 찾아주신 분들께 감사드립니다.

이번 포스트에서는 ASDoc을 위한 작업에 대한 Tip 과 MXML 에서 ASDoc 을 작성하는 것에 대해 알아보려고 합니다. 많은 분들이 아실 만한 내용입니다만, 정리하는 차원에서 작성해보겠습니다.

우선 ASDoc 을 생성하는 방법은 지용호님의  Flex 프로젝트 문서화 - ASDoc 사용하기 라는 포스트로 알아보시면 되겠습니다. 한번 작업해보시면 아시겠지만, 콘솔에서 asdoc.exe를 실행시켜 작업하는 것이 여간 불편한 것이 아닙니다. 이미 지용호님이 그에 따른 해법으로 ANT[각주:1]를 이용하는 방법에 대해 Flex Builder 3에서 ANT 사용하기 포스트를 해두셨습니다. (짝짝짝) 저희는 그대로 읽기만 하면 됩니다. :)
 
위의 2개의 포스트을 읽고 실습해보셨다면 '이렇게 좋은 기능이!!!' 라고 감탄하셨지 모르겠지만, ASDoc Comment를 입력하는 것 자체가 사실 좀 귀찮기는 합니다. 물론 'Ctrl + Shift + D' 를 눌러 ASDoc Comment 구문을 자동생성 할 수 있는 있습니다만, @param, @return 등을 일일이 입력하는 것 자체가 상당히 귀찮습니다. 이때 유용하게 쓸 플러그인을 하나 소개합니다.

Flex Formatter 입니다. 이미 알고 계신분이 많을 것 같습니다. 예전에 sugo님 블로그인 Apollo9 에서 Flex Builder MXML/AS Code Formatter 라는 포스트로 소개되었던 플러그인인데요, Flex Builder 3에서 가장 아쉬운 기능인 소스코드 포멧팅을 지원해주는 매우 나이스한 플러그인입니다. 이 Flex Forrmatter가 upgrade 되면서 ASDoc 관련 기능들이 추가되었습니다. 자동으로 ASDoc Comment 를 추가해주는 기능입니다.  설치방법은 우야꼬님의 블로그에 Flex Formatter - FlashBuilder Plugin 라는 포스트로 소개가 되어있으니 참고하시면 되겠습니다. (Flex Formatter는 현재 글 쓰는 시간을 기점으로 0.7.1 버전이 최신입니다.)

Flex Builder 3에서 Flex Formatter를 설치한 화면

Flex Builder 3에서 Flex Formatter를 설치하면 위와 같이 좌측상단에 아이콘들이 추가됩니다.


총 5개의 버튼이 나타나게 되는데 간단히 설명해보면 왼쪽에서 오른쪽으로 각 버튼들은 다음과 같은 기능을 합니다.

1. 파일 내에 설정값에 따라 ASDoc Comment 생성
2. 커서가 위치한 열에 ASDoc Comment 생성
3. 코드 포멧팅 적용
4. 들여쓰기 적용
5. 코드 재배치

1번 'Generate ASDoc comments for file' 버튼을 클릭하여 ASDoc Comment를 생성하여보도록 하겠습니다.

위와 같은 테스트코드를 작성 후 'Generate ASDoc comments for file' 버튼을 클릭하게 되면 아래와 같이 주석이 자동으로 생성되게 됩니다.

여기에 ASDoc 문서에서 볼 수 있게 설명을 아래와 같이 적어보도록 하겠습니다.


이렇게 작성된 클래스는 아래와 같이 ASDoc 파일이 생성됩니다.


위의 AS을 참고하여 생성된 ASDoc

위의 AS을 참고하여 생성된 ASDoc


하지만 아쉽게도 AS 파일에서만 지원되고, MXML에서는 아직 지원되지 않네요. ;-(


이번에는 MXML에서 ASDoc 를 생성하는 것에 대해 알아볼텐데요, MXML에서도 ASDoc Comment를 입력하면 ASDoc을 생성할 수 있습니다만, AS와는 달리 Class 수준의 Comment를 달수 없었다는 것이 문제였습니다.  (위에서 '간단한 테스트용 클래스인 MyClass'라고 출력되는 부분) 부끄럽게도 그간 ActionScript로 작성된 라이브러리에만 ASDoc을 만들었터라 MXML에서는 ASDoc을 생성해보지 않아서 해결책 찾을 생각도 안해보았는데, 이번에 한번 해보려고 열심히 구글링~ 해보았더니 떡하니 이런 문서가 있더군요!
Flex 4 에서 해당 기능이 추가되었네요. 기존의 MXML의 Comment 방식이었던 <!-- --> 과 구별하기 위해 <!--- --> (dash 3개)를 사용하게 정의하고 있네요. Flex Builder 3를 사용하시는 분들께서도 Flex 4 sdk 를 내려받으셔서 Flex 4의 asdoc.exe 를 사용하시면 위와 같이 MXML에서 Class 수준의 Comment를 입력할 수 있습니다. ;)

위의 MXML을 참고하여 생성된 ASDoc

위의 MXML을 참고하여 생성된 ASDoc


Flash Builder 가 정식발매 된 후에는 당연한 듯 사용할 지도 모를 정보입니다만, 기록의 차원에서 정리하여보았습니다. ASDoc 관련 정보는 LiveDoc의 Using ASDoc에 잘 나와있으니 참고하시면 좋겠네요. ;)
  1. 자바기반의 빌드 자동화 툴. (http://ant.apache.org/) [본문으로]
저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
공룡 | 2010.03.09 02:24 신고 | PERMALINK | EDIT/DEL | REPLY
좋은글 잘보고 갑니다~~~~ ^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.09 13:07 신고 | PERMALINK | EDIT/DEL
덧글 감사합니다 ;^)
Favicon of http://me2day/tangbba BlogIcon 꼬출든남자 | 2010.03.09 12:59 신고 | PERMALINK | EDIT/DEL | REPLY
저도 이넘을 쓰기는 하는데..
이것 때문인지는 모르겠지만 코드 어시스트가 삑싸리나기도 하고..
괄호 한개 안닫은 구문이 코드 중간에 있으면 에러창 토하고.. ㅋㅋ Snippet과 적당히 섞어 쓰고 있어욤
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.09 13:07 신고 | PERMALINK | EDIT/DEL
ASDoc 은 민감하니 부드럽게~ ㅎㅎ
Favicon of http://koko8829.tistory.com BlogIcon 열이아빠 | 2010.03.09 14:25 신고 | PERMALINK | EDIT/DEL | REPLY
저도 이제 슬슬 주석질을 좀 해야될텐데요. ^^
스크립트 내용 분석해서 알아서 주석도 달아주고 하면 좋겠어요.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.12 08:22 신고 | PERMALINK | EDIT/DEL
진정한 자동화문서!!! ㅋ
Favicon of http://vulcan9.tistory.com BlogIcon vulcan | 2010.03.09 15:55 신고 | PERMALINK | EDIT/DEL | REPLY
mxml에서 클래스주석 다는 방법 유용하게 잘쓰겠습니다..ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.12 08:22 신고 | PERMALINK | EDIT/DEL
더 유용한 것들 알게되시면 공유를 좀.. ^^
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2010.03.17 13:02 신고 | PERMALINK | EDIT/DEL | REPLY
ㅋㅋㅋ 이제 mxml에도 주석질!
Favicon of http://tawool.tistory.com BlogIcon 타울 | 2010.03.24 19:04 신고 | PERMALINK | EDIT/DEL | REPLY
오...이젠 Flex4를 사용해야할때인가봐요 ㅋㅋ
검쉰님 좋은 내용 감사합니다~ ㅎ
Favicon of http://hazbola.tistory.com BlogIcon 뿌꾸 | 2010.03.24 21:22 신고 | PERMALINK | EDIT/DEL | REPLY
좋은글 너무 잘 보았습니다 ^^ 트래붹 걸었습니다 ..^^
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.10.30 10:52
오랫만에 블로그 유입경로를 보다가 코리아몽키라는 분의 블로그를 알게 되었습니다.  [Actionscript 3.0] 간단하게 만들어 본 XML to arrayColection 함수 라는 글에서 제 글을 인용하셨더라구요. ;) 위의 글 말미에 코리아몽키님이 가진 의문이 있으셔서 덧글을 달다가 덧글이 좀 길어질 듯 하여, 간만에 포스팅을 하려고 합니다. ;)

'왜 XML을 Object로 파싱하여 그 데이터를 처리하고 이용하는 방법에 대해서 정리된 자료가 없는 것인가?' 라는 의문은 다른 각도로 접근해봐야 할 것 같습니다. '왜 방법이 없는가'에서 'XML을 Object로 파싱하지 않고 사용할 방법이 있는가?' 라는 것으로 말이죠. 단도직입적으로 말씀드리자면, XML 을 받은 것을 Object 로 변환해야할 필요성이 크지 않다는 것입니다(꼭 필요한 경우도 있겠습니다만). 게다가 XML 그대로 사용하는 것도 가능하고 HTTPService를 이용하면 XML을 Object로 변환 한 결과를 바로 받을 수도 있기 때문입니다.

그럼 먼저 HTTPService 를 이용하여 다양한 형태로 결과를 받는 방법에 대해서 알아보겠습니다.

HTTPService 의 resultFormat
HTTPService에는 resultFormat 이라는 속성이 존재합니다. 이는 HTTP를 호출하여 받은 결과값을 어떤 식으로 파싱할 것인지에 대해서 설정하는 속성인데, 아래의 표와 같이 총 6가지로 설정 가능합니다.

  object   ActionScript의 Object 들의 트리형식으로 XML 을 파싱하여 반환합니다. (기본값)
  array   ActionScript의 Object 들의 트리형식으로 XML 을 파싱하여 반환되나, 최상위의 Object가 Array가 아니라 새로 생성된 Array의 첫 번째 아이템이 됩니다. 만약 makeObjectsBindable 속성이 true로 설정되어 있을 경우 최상위 Array는 ArrayCollection으로 반환됩니다.
  xml   ActionScript 의 XMLNode Object로 이루어진 XML로 XML을 파싱하여 반환합니다.
  flashvars   ActionScript Object로 name과 value가 쌍으로 되어 있는(page=1) 텍스트를 파싱하여 반환합니다.
  text   받은 그대로를 text로 반환합니다.
  e4x   ECMAScript for XML(E4X)를 이용할 수 있는 ActionScript 의 XMLNode Object로 이루어진 XML로 XML을 파싱하여 반환합니다.

resultFormat를 object나 array로 설정하면 Object로 변환된 XML 데이터(서버측이 전달해준)를 전달받게 됩니다. 따로 파싱할 필요가 없는 것이죠. 물론 e4x나 xml로 설정하여  XML로 받아와서 사용할 수도 있습니다. 또는 특정 프로토콜에 의해 생성된 데이터라면 text로 설정하여 String 으로 받은 다음 프로토콜에 맞게 파싱하여 사용할 수도 있을 것입니다. (마치 구분자를 이용하여 소켓통신시 데이터 전달하는 것과 같이)

Object로 파싱하여 사용
rss 구조

rss 구조 (이미지 클릭하여 보세요.)

object로 resultFormat을 설정하여 데이터를 받아오는 예제를 한번 보겠습니다.
본 블로그의 rss를 읽어서 DataGrid에 넣어주는 예제인데, 우선 RSS 정보를 읽기 위해 구조를 먼저 보면 (우측이미지 참조) channel이라는 노드의 하위에 블로그의 정보들(타이틀, 주소, 이미지정보 등)이 있고 포스트의 정보는 item 이라는 노드들에 들어있습니다.

예제에서는 이 item 노드들을 가져다가 DataGrid에 넣어줄 것입니다.




위의 예제에서 resultHandler 메소드를 잠시 보시면 위에서 말한 item 노드들을 찾아서 DataGrid 에 넣어주는 구문을 보실 수 있으십니다. 위의 rss의 트리구조와 같이 Object 로 파싱되어 있기 때문에 동일하게 rss.channel.item 이런 식으로 item 을 읽어오고 있습니다. (하단 이미지 참조)

Object로 받아온 데이터

Object로 받아온 데이터



XML 그대로 사용하기
Flex의 DataGrid, Tree 와 같이 자주 사용하는 컴포넌트의 설계적 특성상 Object 혹은 XML 중 어떤 하나가 더 빠르다는 이야기는 둘째 치고라도 위의 예제같은 경우는 XML을 그대로 사용하시는 것이 오히려 개발 시에는 편할 수도 있습니다. 왜냐하면 resultHandler에 구현된 로직때문인데, resultFormat 속성을 e4x로 설정하여 결과로 받은 XML은 E4X를 사용할 수 있기 때문입니다. E4X에 대한 설명은 생략하도록 하겠습니다. 간단한 E4X에 대한 예제는 여기를 참고하세요.




resultFormat 속성을 e4x로 설정하고, resultHandler 메소드에서 e4x를 사용하여 간단하게 item을 DataGrid에 넣도록 구현하였습니다. 위의 예제와 비교하여 보셔도 크게 다른 것은 느끼지 못하실 것입니다. 오히려 위의 예제에서는 item 노드를 찾기가 훨씬 쉽게 되어있죠.

XML로 받아온 데이터

XML로 받아온 데이터



개발자 마다 스타일에 따라 차이는 있겠습니다만, 저의 경우는 HTTPService를 이용하는 어플의 경우 XML을 기반으로 데이터를 운용하고 있고, RemoteObject의 경우에는 VO를 기준으로 데이터를 운용하고 있습니다. 아무래도 HTTPService를 사용하는 경우는 서버와 주고받는 데이터를 XML기반으로 움직이는 것이 E4X 때문에 무지 편한 느낌이라.. ;^)

다른 분들은 어떻게 데이터를 운용하시는지 저도 궁금하네요. ;^) 트랙백 부탁드립니다.

신고
Creative Commons License
Creative Commons License
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.10.30 16:22 신고 | PERMALINK | EDIT/DEL | REPLY
난 이 의견 반댈세
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.10.30 17:07 신고 | PERMALINK | EDIT/DEL | REPLY
외부 서버로부터 받은 데이터를 가공하지 않고 그대로 쓰는 건, 결합도를 높이는 지름길..
(이 주제는 예전에 구글톡에서도 한 번 의견을 나누었던것 같은데.. -_-;)

물론, 테스트용 어플리케이션, 프로토타입 등에선 나도 저런식으로 그냥 E4X로 긁어다 쓰긴 하는데, 딱 그 범위만 넘어서도, 기능이 한두가지만 엮여도, 별도의 객체 구조를 가져가는게 사용하기 편함..

결합도 vs 간편성은 항상 논란의 여지가 많은 부분이긴 한데,
최근 몇 년간의 추세는, 간편성도 매우 중요하지만, 결합도가 우선시되어야, 또는 선행되어야 한다는 쪽 우세하니까..

또 내 경험으로도, XML을 가공하는데 드는 비용은 그리 크지 않은 편이고, 반면에 깨끗한 코드를 유지할 수 있다는 이점은 참 버리기 아까운 부분..
Favicon of http://blog.handkstory.net BlogIcon 제주소년 | 2009.10.31 14:35 신고 | PERMALINK | EDIT/DEL
아.. DB와의 종속성을 없애기 위해 ORM을 사용하는 원리와 비슷한건가요?ㅎ
하긴 외부 서버의 데이터를 바로 사용한다면 결합도가 크게 상승하겠네요..
Flex용 ORM이 나와도 좋을듯.. =ㅅ=ㅋ
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.11.08 06:26 신고 | PERMALINK | EDIT/DEL
예, 비슷한 맥락입니다. :')
내용을 조금 더 보태자면, 결합도 문제는, 일반적으로 일정 기간이 지난 후에야 불거지는 성향이 있어, 개발 시에는 잘 고려하지 않는 부분이기도 합니다.
또한, 개발이 된 후 한참 뒤에야 발견되는 문제이기에, 오히려 심각성이 더 크기도 하지요. 이슈가 될 시점 즈음에는 코드를 잘 알고 있는 사람이 아무도 남아있지 않기 때문에.. ㅎㅎ
Favicon of http://minsangk.com BlogIcon 민상k | 2009.11.01 10:25 신고 | PERMALINK | EDIT/DEL | REPLY
저도 찬익님 의견처럼 결합도 때문에 Object-XML / XML-Object 간 변환 루틴을 힘겹게 만들었던 기억이 납니다.
그러나 결국 만들어보니 xml feeder 가 제 자신이라면 저런 결합도를 위한 노력이 아무 짝에도 쓸모 없음을 깨달았습니다 ㅋ
resultFormat 을 object 로 하는건 생각못했네요. resultFormat="e4x" 에 너무 익숙해져 있었나 봅니다.

좋은 글 잘 읽고 가요.
ps: 얼마전까지도 RSS 에서 찾아 들어오면 올블릿이 바로 떠서 주소를 찍어와야 했는데 오늘은 제대로 글이 뜨네요ㅋ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.11.08 10:48 신고 | PERMALINK | EDIT/DEL
제 블로그 rss 주소는 http://blog.flashplatform.kr/rss 입니다. 아마 올블릿쪽 rss 을 참조하고 계신듯 하네요 ;)
방문 감사합니다.
최재영 | 2009.11.03 10:04 신고 | PERMALINK | EDIT/DEL | REPLY
결합도가 높아진다는건 이해하기 힘든 부분인데...
어차피 화면 구성은 해당 Application 에 의존적인 부분이고,
재사용 가능한 컴포넌트에서는 ICollectionView 의 사용으로
결합도하곤 상관없는듯...
결론: 그냥 e4x 를 사용한다
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.11.09 03:36 신고 | PERMALINK | EDIT/DEL
재영형 하이 ㅎㅎ
위에 언급한 결합도는 Service Architecture와의 coupling을 얘기한 것임.
예를 들면, RSS 리더라면 ATOM 등의 다른 포맷들도 지원해야하는데, 위 구조로는 추후에 포맷을 추가할 때마다 다소 진통이 있을 듯.
물론 국내의 기업용 어플리케이션들의 경우엔, '클라이언트를 위한 서버'를 개발하는 방식으로 클라이언트/서버 개발을 묶어서 진행되는 경우가 대부분이라 거부감이 없겠지만서도.. 이는 애초에 클라이언트/서버의 결합도를 100%로 놓고 시작하는거니까..

결론 : (아키텍처 상의) 컴포넌트 간 결합도에 대한 얘기였음.
Favicon of http://me2day.pe.kr BlogIcon 이태호 | 2009.11.03 21:06 신고 | PERMALINK | EDIT/DEL | REPLY
우선 뭐.. 저는. 위 최재영님 스타일과 같구요. 단, XML데이터를 별도의 class가 raw한 데이터(xml)를 머금고 있도록 하고, 밖에서는 일종의 factoring을 해다 쓰는 편입니다. 어찌보면 절충안이라고 할 수 있죠. 한마디로 1 xml에 대한 명세를 1 data container class 만 가지고 있게 합니다. 그냥 갠적인 스타일~
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.11.08 10:41 신고 | PERMALINK | EDIT/DEL | REPLY
추가적으로, 코드의 가독성도 문제가 될 수 있다는 생각..
물론 문서화로도 해결 가능하나, 모든 가독성 문제는 문서화로 해결이 가능한 반면, 아무도 문서를 읽으려하지 않으므로..

추후 서비스의 운영/유지/보수 시, 위 RSS 리더의 경우, BlogPost 라는 Class를 두고 파싱하는 경우, 클래스명만으로도 대략의 로직을 이해할 수 있으나, rssData..item과 같은 경우, 해당 로직을 이해하기 위해서는 RSS의 Specification에 대해서도 추가적인 지식이 있어야 함. 물론, RSS는 널리 알려진 포맷이라 많은 개발자들이 내용을 숙지하고 있겠지만, FOAF이나 DOAC이라면 또 다를 것이고, XMPP나 또는 기업 내부에서만 사용하는 데이터 포맷이라면 더욱 그 차이가 심해짐.

단, 유지 비용과는 관계 없이 저럼한 개발 비용을 추구하는 국내 소프트웨어 개발 업계의 실정에는 본 답글 내용이 맞지 않을 수는 있다는 의견..
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.11.08 10:46 신고 | PERMALINK | EDIT/DEL
코드의 가독성의 문제에 대해서는 동의.
위의 RSS spec 을 숙지한 경우에는 상관 없겠으나 spec 을 모르는 상태에서의 저 코드는 대략난감이겠군.
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.11.09 04:15 신고 | PERMALINK | EDIT/DEL
흠.. 난 결합도 문제가 더 큰 문제라고 생각하는데..
최재영 | 2009.11.09 08:58 신고 | PERMALINK | EDIT/DEL | REPLY
음.. 방금도 대화했지만
이미 사용데이터는 Collection류로 추상화되어 있는데다,
서버(혹은 데이터)와의 coupling point 는
소스 데이터의 변화가 있는 경우 어차피 다시 작성되어야 함.
VO 가 있는 경우 소스데이터가 변하면 VO 도 수정해야하고..
(가독성 차원에서는 잘 생각해봐야 함. 어느 쪽이 비용이 더 적은지)
coupling point 에서의 추상화 레벨이 높아질수록,
코드 복잡도가 증가할 수록 쓸데없는 버그발생률만 높이게 되는 듯...
차라리 다른 곳에서의 재사용성을 높이는게
훨씬 더 이득이라는 생각...
(결합도 낮추기는 재사용성을 위해서 생각한거 맞지?)
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.11.15 17:01 신고 | PERMALINK | EDIT/DEL | REPLY
음.. 역시 방금 다시 대화했지만.. (메신저가 편리하긴 편리한 듯.. 로그 정리가 안되는게 흠이지만)

재사용성하고 일부 겹치는 부분이긴 한데, 일단 결합도는 Flexibility를 염두에 두고 이야기 한 것..
아직은 실력이 부족으로.. 재사용성의 이점을 누리진 못하고 있어서..

개발 단계, 또는 운영 단계에서 기능의 추가/수정이 빈번히 일어나는 경우,
코드의 깨끗함을 유지한 채 지속적으로 기능을 추가할 수 있는 구조..라면
아무래도 VO 쪽에 조금 더 점수를 줄 수 있을 것 같다는 생각.

또, 역시 메신저에서 이야기 했듯이, 하나의 예로,
외부에서 가져온 한 가지 데이터를 다수의 Visual Component에서 사용하는 경우,
만약 특정 데이터의 노드명이 변했다면 (ex. pubDate->publishDate)
데이터를 그대로 가져와서 쓰는 경우, 모든 Visual Component에서 해당 값을 바꿔줘야 하지만,
VO는 파서에서 단 한 번만 수정해주면 되니..

코드 복잡도 문제는 나중에 다시 토론..
Favicon of http://vulcan9.tistory.com BlogIcon vulcan | 2009.12.05 17:15 신고 | PERMALINK | EDIT/DEL | REPLY
저두 걘적으로다가 [외부데이터-VO 클래스] 이렇게 항상 짝으로 사용합니다. 외부데이터를 파싱해서 적절하게 변형시켜주눈 Adapter 역할을 VO 클래스에 맡기는거죠. 아직까지는 데이터가 변하더라도 Vo클래스 밖으로 변경사항이 전파되는 일은 없었던거 같네요. 홍수났을때 물길 막아주는 칸막이 역할 - VO에 한표!
카시우스 | 2010.02.03 17:49 신고 | PERMALINK | EDIT/DEL | REPLY
글잘보고있습니다 ㅋㅋㅋ 근데너무어려움... ㅠㅠ 회사괜히와써.....나에게너무많은걸바래 ㅠㅠ
marie | 2011.11.23 11:24 신고 | PERMALINK | EDIT/DEL | REPLY
flex로 .. 검색해서 블로그들왔는데 잘봤습니당~ 10%정도 알아 들었나?ㅠ _ㅠ 어려워요 엉엉 ㅠㅠ
gottdanken | 2014.11.18 18:00 | PERMALINK | EDIT/DEL | REPLY
관리자의 승인을 기다리고 있는 댓글입니다
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.06.23 09:57
DataGrid는 다음과 같이 간편하게 표형식의 데이터를 화면에 출력할 수 있습니다.


이런 DataGrid은 위의 코드에서 보실 수 있듯, DataGridColumn 을 이용하여 화면에 각 열을 생성하여 보여지게 됩니다. 데이터가 아무리 많이 들어오더라도 DataGridColumn이 지정되어 있지 않으면 출력되지 않죠. DataGridColumn은 가장 기본적으로 headerText, dataField 속성을 필요로 합니다.

headerText : DataGrid의 헤더(Header)에 출력될 문자열. 값이 지정되지 않을 경우 dataField의 값으로 사용합니다.
dataField : DataGrid에 입력된 데이터(DataProvider)에서 해당 열에 출력될 데이터를 지정.

위의 코드와 같이 MXML로 정의된 DataGridColumn의 정보(headerText 나 dataField, 혹은 넓이정보 등)를 변경하고자 한다면 어떻게 해야할까요? 방법은 여러가지일 수 있으나, 크게 본다면 1. DataGridColumn에 ID를 지정하여 해당 ID로 접근하거나 2. DataGrid의 columns 속성을 이용하여 DataGridColumn 모음을 받아와 처리하는 방법이 있을 수 있겠습니다.
이 포스트에서는 2번째 방법인 columns속성을 이용하는 것을 알아보도록 하겠습니다.

columns 속성은 DataGrid의 화면에 출력될 수 있는 하나 이상의 DataGridColumn들을 모아놓은 배열입니다. 이 배열에 담겨있는 DataGridColumn들을 수정하면 DataGrid의 모습도 바뀌게 된다는 것이죠.  특정 컬럼을 변경하고자 하면 이 배열의 해당 DataGridColumn에 대해 변경을 하면 반영이 되게 됩니다.

만약 위의 MXML처럼 ActionScript로 DataGridColumn을 설정하려 한다면 columns 속성에 직접 다음과 같이 DataGridColumn을 넣어주면 됩니다.

makeDataGridColumn 이라는 DataGridColumn 객체를 반환하는 메소드를 이용하여 DataGrid의  columns 속성에 원하는 DataGridColumn을 배열로 담아 넣어주게 되면 처음에 보셨던 MXML에서 DataGridColumn을 지정하는 것과 같이 처리할 수 있게 되죠.

마지막으로 원하는 컬럼의 headerText 를 변경하는 예제를 만들어보고 이 포스트를 끝내도록 하겠습니다.
우선 원하는 컬럼을 선택하는 용도로 사용할 ComboBox를 생성 후, 컬럼에 대한 정보를 columns 속성을 이용하여 ComboBox에 넣도록 하겠습니다.


거기에 TextInput 과 Button을 생성하여 변경하고자 하는 문자열을 입력받고 동작할 수 있게 changeLabel 메소드를 추가합니다.


완성된 코드 및 SWF 파일입니다. ;)


좋은 하루 보내세요~ ;)
신고
Creative Commons License
Creative Commons License
Favicon of http://dbilove.com/tt BlogIcon 블랜즈 | 2009.06.23 14:07 신고 | PERMALINK | EDIT/DEL | REPLY
항상.. Flex Component에서 많이 배웠는데.. 직접 트랙백도 해주시고..^^
감사합니다..^^ 덕분에 좋은 기능 알게 되었습니다...
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.23 14:13 신고 | PERMALINK | EDIT/DEL
덧글 감사합니다 ;)
좋은 하루 되세요!
네오랑 | 2009.06.23 18:06 신고 | PERMALINK | EDIT/DEL | REPLY
오~~~감사합니다~~~ID 로 접근했었지만, 뭔가 찜찜한 기분이 들었었는데...
속이 뚫리는 기분이네요~~감사합니다...
앞으로도 자주 오겠습니다...잘 부탁드립니다~~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.24 11:23 신고 | PERMALINK | EDIT/DEL
ID로 접근하는 것도 하나의 방법입니다만,
동적으로 생성되었을 때는 곤란하니까 해당 객체에서 원하는 것들을 받아내는 식으로 접근하시면 편리하실 겁니다. ;)
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2009.06.24 07:38 신고 | PERMALINK | EDIT/DEL | REPLY
아~ 멋쩌라~ 저런 방법이~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.24 11:24 신고 | PERMALINK | EDIT/DEL
ㅎㅎ 형님 ㅋㅋ
Favicon of http://adnaru.com BlogIcon 희희덕덕 | 2009.06.25 14:07 신고 | PERMALINK | EDIT/DEL | REPLY
우와 정말 멋진정보네요~
재밌게 잘 읽고갑니다.
감사합니다~ ㅋㅋ 조만간 뵈어야죠!
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.26 00:11 신고 | PERMALINK | EDIT/DEL
네~ 다음주에 뵈어요~ ;)
Favicon of http://blackiz.tistory.com BlogIcon Blackiz | 2009.07.02 15:48 신고 | PERMALINK | EDIT/DEL | REPLY
헛, 어느새 사진이 바뀌셨네요. ㅎㅎ
이번에 캠프에서 못뵈서 아쉽습니다. ㅋ
토요일에 !!
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.02 18:11 신고 | PERMALINK | EDIT/DEL
저도 못가서 너무 아쉽다는.. ㅜㅜ
남석이 | 2009.07.15 05:16 신고 | PERMALINK | EDIT/DEL | REPLY
어떤 브라우져를 쓰시는지... 자동으로 안티엘리어싱처리가 되는 건지.. 가독성이 떨어지네요. 전 크롬과 익스6를 쓰고 있습니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.15 09:56 신고 | PERMALINK | EDIT/DEL
파폭을 쓰고 있습니다.
다른 브라우저를 거의 안써서 테스트를 못해봤네요.
한번 테스트해보겠습니다.

혹 ClearType 설정되어있으신지요?
기본폰트로 '맑은 고딕'을 쓰고 있어서 ClearType 설정되어 있지않으시면 이쁘게 안보이십니다 ^^;
네오랑 | 2009.07.20 18:06 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요??
질문을 어디에 해야할지 몰라서 여기에 글을 남깁니다..

웹에서 경로설정을 위해 Directory 창을 띄우고 선택하게 하고 싶은데요...
어떻게 하면 좋을지 몰라서 질문 올립니다.

웹에서는 보안 정책때문에 flash.filesystem 패키지를 사용못한다고 하더라구요..
방법을 찾고 있는데, 잘 검색이 않되서 이렇게 염치불구하고 여쭤봅니다..

방법이 뭐가 있을까요?? 답변 부탁드립니다..

그럼, 즐거운 하루보내세요~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.22 18:30 신고 | PERMALINK | EDIT/DEL
폴더선택창은 안되는 것으로 알고 있습니다. 저도 잘 모르겠네요 ^^;;
도움이 못되어서 죄송합니다.
알려주세요 ! | 2014.11.10 16:17 | PERMALINK | EDIT/DEL | REPLY
관리자의 승인을 기다리고 있는 댓글입니다
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.06.02 10:26
안녕하세요? 검쉰입니다.
얼마전 한국어도비측에 제출한 기술문서가 드디어 공식사이트에 등록이 되었네요.
기술문서의 제목은 '팝업매니저를 이용한 사용자 정의 컴포넌트의 제작' 입니다.
간단하게 팝업매니저에 대해서 알아보고, 팝업매니저를 이용하여 사용자 정의 컴포넌트를 제작하여 보는 것을 골자로 하고 있습니다.어쩌면 다른 개발자분들이 욕하실지도 모를(?) 퀄리티를 자랑합니다; 욕만 하지 말아주세요. ㅜ_ㅜ


여기를 누르시면 보실 수 있습니다만, 로그인이 필요합니다. ^^;
한국어도비 측의 정책이 그렇다네요. ^^;
올해 안에는 로그인이 필요 없도록 변경될꺼라는 ACC 분들의 말씀도 있으셨으니 조금만 참아주세요 ;)

본문은 소스가 좀 읽기 불편하실텐데, 첨부되어 있는 pdf 파일을 다운받으셔서 보면 더 좋을 것 같습니다.

ps. 리뷰해주신 다른 개발자 분들과 담당자분께 감사드립니다.

ps2. 기념품을 보내주셨네요. :) 큼직한 어도비 마크가 좋군요 ㅎㅎ
잘쓰겠습니다~ :)
신고
Creative Commons License
Creative Commons License
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2009.05.20 23:31 신고 | PERMALINK | EDIT/DEL | REPLY
멋진 글~~~
아주 잘봤습니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.05.24 10:00 신고 | PERMALINK | EDIT/DEL
쪼금 부끄럽네요 ㅋ
actionshin | 2009.05.21 00:49 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 글 감사합니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.05.24 10:00 신고 | PERMALINK | EDIT/DEL
오랫만입니다. ;)
잘 지내시죠? ^^
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.05.25 00:13 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 정보 배우고 갑니다~!
역시 형님 블로그 다녀가는 보람이 있어요
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.05.26 10:12 신고 | PERMALINK | EDIT/DEL
잘 지내지? ^^ 조만간 얼굴 한번 보자고~
Favicon of http://www.jinhokim.com BlogIcon 찌노 | 2009.05.25 09:16 신고 | PERMALINK | EDIT/DEL | REPLY
ㅎㅎ 내심 작년생각이 나네요
처음으로 도움을 받았던게 저녀석이었는데 말이죠 ㅎㅎ 벌써 1년이 ~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.05.26 10:12 신고 | PERMALINK | EDIT/DEL
그러게요~ 벌써 1년~
Favicon of http://jjaeko.tistory.com BlogIcon 째코 | 2009.06.03 16:04 신고 | PERMALINK | EDIT/DEL | REPLY
글 잘봤습니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.15 18:31 신고 | PERMALINK | EDIT/DEL
오홋. 째코님!
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.06.16 18:31 신고 | PERMALINK | EDIT/DEL | REPLY
기념품은 손톱깎이인가요..
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.17 10:53 신고 | PERMALINK | EDIT/DEL
USB 메모리.. -ㅁ-;;;
Favicon of http://butterguy.tistory.com BlogIcon 버터백통 | 2009.06.18 09:32 신고 | PERMALINK | EDIT/DEL | REPLY
와우~~ 축하합니다~~
기술문서속 사진을 보니...왜 제가 숨이 찰까요...;;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.18 22:29 신고 | PERMALINK | EDIT/DEL
사진이 실물과 달라 답답하신가요? ㅎㅎㅎㅎㅎ
BlogIcon 윤석진 | 2009.06.30 02:03 신고 | PERMALINK | EDIT/DEL | REPLY
popup할때 왜 var window:IFlexDisplayObject =

PopUpManager.createPopUp(this, MyLoginForm, true);
IFlexDisplayObject 가 필요한 건가요?

그냥 createPopup하니까 드래그가 안되던데요 이것때문인가요?
아니면.. 디스플레이개체가 필요한데
DisplayObject가 최상위 객체니까 그래서 인터페이스를 받는건가요?? 알려주세요 ㅠ.ㅠ;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.30 10:15 신고 | PERMALINK | EDIT/DEL
PopupManager 에 createPopUp 메소드가 반환하는 타입이 IFlexDisplayObject 인터페이스를 상속하는 객체이기 때문입니다. 왜냐하면, Flex 에서 사용되는 화면에 보이는 컴포넌트(Visual Component)는 모두 UIComponent를 상속하고 있고 이 UIComponent가 IFlexDisplayObject 인터페이스를 구현하고 있기때문입니다. 이 IFlexDisplayObject 인터페이스에는 width, height, x, y, visible 등이 정의되어 있습니다.
물론, createPopUp 메소드에서 2번째 파라미터로 넣으시는 클래스의 객체로 반환됩니다만, 어떤 클래스를 넣던지 동일하게 사용하기위해서 IFlexDisplayObject 로 받았습니다.
var window:MyLoginForm = PopUpManager.createPopUp(this, MyLoginForm, true) as MyLoginForm;
이렇게 사용도 가능하죠.

그리고 팝업매니저를 통해 팝업하였더라도, 무조건 드래그가 되는 것은 아닙니다. 팝업매니저는 화면에 띄워주는 역할을 할뿐, 드래그기능은 컴포넌트 자체의 기능입니다. TitleWindow의 부모클래스인 Panel 안에 보시면 팝업이 된 경우에 드래그할 수 있도록 기능이 구현되어 있습니다.
Canvas는 아무리 팝업해도 드래그 안된다는 이야기죠. ;)
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.30 10:19 신고 | PERMALINK | EDIT/DEL
한참 타이프 하다보니 이전에 관련 글을 적은 적이 있네요 ;)
[Flex] TitleWindow를 이용한 팝업(Popup)에 대한 간단한 설명과 Tip ( http://blog.flashplatform.kr/174 )
이 글 참고해보세요.
BlogIcon 윤석진 | 2009.07.01 01:47 신고 | PERMALINK | EDIT/DEL | REPLY
예.. 감사합니다.. 참고하라고 하신 글은 저번에 읽었는데도 불구하고,, 인터페이스에 대한 이해가 부족해서요..
저는 교육기관을 통해 플렉스를 배우고 있는데. 대부분.. 인터페이스는 아니 완전히 사용안해서요 ..
말씀해주신 것처럼 api를 보듯 차근 차근 상속관계를 짚어주면 좋을텐데
자바수업은 그렇게 api를 권하며 설명해주시는데.. 플렉스는 view 라는 인식이 너무 강해서인지
뭐랄까요.. 원조 디지털 유목민이라고 할까요?
대부분의 강사님들이 C언어부터 마스터하시고.. 많은 경험과 막강한 내공으로 새로운 교육과정을 거침없이
소화하시며 진도나가시지만.. 그 스타일들이 워낙 강하셔서..

답변 감사합니다.
네오랑 | 2009.07.04 11:35 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요?? 우선 강의를 진행하신다니, 축하드리구요~~
저도 가서 듣고 싶지만, 시간이....ㅠ.ㅠ

질문을 어디에 써야할지 몰라 염치불구하고 여기에 덧글로 올립니다.
플렉스에서 DataGrid 의 데이터 들을 어떻게 하면 Excel 로 저장할 수 있을까요??
지금 제가 Flex3.0, .Net 3.5(C#을 사용하고 있구요), WebORB 를 사용하고 있어요...
JavaScript 를 이용해서 어떻게 해볼려고 했는데....잘 않되더라구요...ㅠ.ㅠ
그래서 이렇게 도움을 청하고자 찾아왔어요...참고할 예제가 없을까요?? 부탁드립니다...
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.06 09:51 신고 | PERMALINK | EDIT/DEL
서버의 도움을 받으셔야됩니다. 검색해보니 다른 방법이 있는 듯 합니다만, 서버측 도움을 받는게 가장 괜찮은 일인듯 하네요.

http://persiacat7.egloos.com/2268496
http://on1456.tistory.com/47
http://cafe.naver.com/flexcomponent/13782

위의 주소 참고하여보세요 ;)
네오랑 | 2009.07.06 11:07 신고 | PERMALINK | EDIT/DEL | REPLY
아직 내용을 보진 않았지만, 이렇게 신경써 주셔서 정말 감사합니다~~
그리고, 메인 사진요, 이전 사진이 더 멋있어 보이시던데..ㅎㅎㅎ 그냥 제 갠적인 생각요`~^^
즐건 하루 되세요~
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.04.17 01:58
[31가지 사용자 경험 시나리오로 배우는] 실전 UX 디자인

실전 UX 디자인

요즘 읽고 있는 책 중 재미있게 보고 있는 책인 [31가지 사용자 경험 시나리오로 배우는] 실전 UX 디자인 입니다. 구석구석 웹페이지의 디자인에서 '실전'적인 이야기들로 책을 꽉 채우고 있어서 재미있게 읽고 있습니다. 책 내용도 훌륭하고, 한국 실정에 맞게 예제들도 넣어 이해가 쉽게 해주는 번역또한 센스 굿!! +_+

대학교 재학 중 'HCI Lab'에 있으면서 인연이 되어 '사용성', 또는 '시나리오', '페르소나' 같은 단어들과 친숙해질 수 있었죠. 담당교수님께서 스웨덴에서 HCI 를 전공하신 분이라, 강의하시는 HCI 수업도 참 재미있게 듣게 되었고 랩원들과 함께 HCI 학회에 가서 다른 사람들과 이야기도 많이 해보고, 참 즐겁게 HCI 라는 학문과 만났던 것 같습니다.  덕분에, UX(User eXperience) 라는 것에도 관심이 많아진 것 같네요.

아무튼 책의 18장 '현명한 글쓰기창' 에 보면 사용자의 실수에 대한 이야기가 나옵니다. 사용자의 실수로 인한 오류메세지는 그 사용자를 자괴감에 빠지게 만들죠. 사용자를 좌절하지 않게 하기 위해서는 사용자의 실수를 미리 막아주라고 충고 하고 있습니다.  이러한 이야기를 하면서 포카요케 라는 단어를 언급하고 있습니다. (물론 9장 '자동완성의 위력과 함정'에서 먼저 언급하고 있습니다)

포카 요케라는 단어가 무엇일까요? 생소한 단어였습니다만, 책에서 포카 요케ポカヨケ, Poka-yoke는 원래 일본어로 '실수를 피하는'이란 뜻이다. 라고 설명을 하고 있어서 이해가 좀 더 쉬웠습니다. 아래는 위키피디아에서 찾은 포카 요케의 설명입니다.

포카 요케(ポカヨケ, Poka-yoke)는 원래 일본어로 '실수를 피하는'이란 뜻이다. 이 용어는 토요타시게오 신고에 의해 품질 관리의 측면에서 실수를 방지하도록 행동을 제한하거나 정확한 동작을 수행하게 끔하도록 강제하는 여러 가지 제한점을 만들어 실패를 방지하는 방법을 말하는 용어가 되었다.

예를 들어 자동차에서 기어를 주차 상태 위치인 “P”로 놓지 않으면 시동이 걸리지 않도록 만들어 운전자가 자동차를 안전하지않은 상태로 놔두고 나가는 것을 방지하도록 한다. 또한 컴퓨터에서는 USB 장치의 플러그를 꼽을 때 뒤집어진 상태로 꼽으려고하면 안돼도록 디자인 되어 있다. 인지 심리학인간과 컴퓨터 상호작용 분야에서도 이를 이용하여 여러 가지 실수를 방지하는 디자인 원리의 하나로 받아들여져서 이용하고 있다.

위키백과의 포카 요케에서 발췌


책에서 포카요케는 실수방지장치 오류탐색기 2종류가 있다고 이야기 하고 있습니다.

  • 실수방지장치 - 사용자가 실수하지 않도록 미리 오류를 막아주는 역할
  • 오류탐색기    -  사용자가 정보를 잘못 입력하는 즉시 바로 오류를 알려주는 역할

Flex 에서도 이러한 역할을 하는 것들이 존재합니다.

만약 회원가입 화면에서 사용자의 이름을 입력 받는다고 할 때에 사용자의 이름을 넣는 TextInput에 숫자가 입력될 필요는 없겠죠? 한글과 영어만 입력되도록, 또는 한국인만을 대상으로 한다면 한글만 입력받아야 하겠습니다. 이러한 것을 실수방지장치라고 부를 수 있겠네요.

상기 사항에 대해서는 입력받는 글자들에 대해 제한을 걸 수 있는 restrict 라는 속성이 있습니다.




또한 TextInput 컴포넌트를 상속해서 만든 PromptingTextInput 같은 유용한 컴포넌트 있습니다. 오픈소스 컴포넌트들을 모아놓은 FlexLib 에 있는 컴포넌트 중에 하나 입니다. 사용자가 입력하기 전에 프롬프트를 통해 무엇을 입력해야 되는지 입력할 수 있습니다. 개인적으로 매우 좋아하는 컴포넌트 입니다.





그리고 오류탐색기로는 Validator 가 있습니다. 사용자의 잘못된 입력을 메세지로 알려주는 방식입니다. JavaScript 에 익숙한 분들은 각 컴포넌트에 값이 비어있는지 확인하여 Alert을 출력하는 식으로 작성하는 경우도 많은데, 보다 직관적으로 유효성을 컴포넌트에 표시해주는 Validator가 상당히 더 좋은 방법임에 틀림 없습니다.이러한 Validator를 상속받아 새로운 Validator 를 작성하는 것은 제가 이전에 쓴 포스트인 [Flex] 주민등록번호 Validator 를 참고하시면 되겠습니다.

책의 15장 '불량 제로 실수방지장치'에 나오는 스프링노트의 회원가입페이지의 예제를 보면 아래와 같은 이미지가 있습니다.


사용하고자 하는 아이디를 입력 시 아이디로 쓰이기에 적합한지 알려주고 있습니다.  Flex에서는 Validator를 사용하면 비슷한 효과를 얻을 수 있습니다만, 사용자가 입력하는 도중에는 Validator가 작동하지 않습니다. 마우스를 오버해야지만 툴팁이 화면에 나타나게 되는데, 이를 제어할 방법은 없습니다.
이런 상황이 생기는 이유를 알기 위해 Validator 와 UIComponent 와의 동작방식에 대해 알아보도록 합시다.

Validator 에서 입력받은 데이터를 검증하여 ValidationResultEvent 를 발생시키게 되는데 이 때 Validator에 등록해 놓은 UIComponentvalidationResultHandler(event:ValidationResultEvent)로 리스너를 등록해놓아 결과를 전달해줍니다.
이 메소드가 받는 ValidationResultEvent에는 에러메세지가 들어있는데, 이를 UIComponent에서는 _errorString 이라는 변수에 담고 ToolTipManager의 mx_internal로 선언되어 있는 registerErrorString(target:DisplayObject, errorString:String) 메소드를 이용하여 에러메세지를 등록합니다. ToolTipManager에 에러메세지를 등록하게 되면 ToolTipManager에서 해당 컴포넌트에 MOUSE_OVER, MOUSE_OUT 이벤트 핸들러를 등록해놨다가,  해당 UIComponent에 마우스 오버시 에러메세지가 적힌 툴팁이 출력되게 됩니다.


이로인해 마우스를 해당 컴포넌트에 올려놓지 않으면 툴팁이 보이지 않는다는 문제가 생기게 됩니다. 해당 문제점은 어도비의 Bug and Issue Management System(이슈트래킹 시스템)이슈로 등록이 되어 있는 상태입니다. 꼭 해당 속성이 생겼으면 좋겠네요. (투표 많이 해주세요~)
해당 문제를 해결하기 위해 세계 각국의 Flex 개발자들이 내놓은 방안 중에는, CustomToolTipManagerImpl 를 작성하여 직접 속성을 추가한 분들도 계시고 간단하게 다음과 같이 해결한 분들도 계십니다.



하지만 저는 테스트 해보니 제가 원하는 동작은 되질 않네요 =ㅁ=;; 아마도 ToolTipManager 에서 해당 컴포넌트를 찾아 이전과 다른지 비교하는 구분에서 단순히 MOUSER_OVER 이벤트로는 정상적인 교체가 이루어 지지 않는 듯 합니다.

Validator 를 사용하지 않고, Flex 에서 유효성을 검사하는데 좋은 방법에 대해서는 Aral balkan의 블로그에 Better form validation in Flex 라는 포스트를 참고하시면 좋겠습니다. 글의 요지는 TextInput에 값이 비어있을때 경고메세지를 담은 ToolTip을 직접 화면에 생성해주는 식이네요. 참 좋은 아이디어 같습니다.

또 다른 Flex에서의 포카요케가 있다면 트랙백으로 남겨주시면 감사하겠습니다. ;)

ps. 왠지 쓸 때 없는 글을 쓴듯한.. ^^;;




신고
Creative Commons License
Creative Commons License
Favicon of http://koko8829.tistory.com BlogIcon 열이아빠 | 2009.04.17 09:26 신고 | PERMALINK | EDIT/DEL | REPLY
제목만 보고 포카 요케란 단어를 어디선가 들어본것 같은데..라고 생각했는데
책에 있는 내용이군요. 마침 그부분까지 보고 있습니다. ^^
그리고 위에 올려주신 샘플을 끄적거리다가 알게 된 새로운 사실..ㅠㅠ
티스토리에서는 키보드로 네비게이션이 가능한 코드가 있더군요.
Q, A, S, Z, X, C가 각각 다른 액션을 담당하고 있는데
이게 html 폼에 입력이 되는 경우에는 이벤트를 처리하지 않는데
swf폼에 입력하는 항목은 이벤트가 처리가 되네요. ㄷㄷ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.17 10:18 신고 | PERMALINK | EDIT/DEL
티스토리에 swf 파일 올리면 wmode 가 transparent 로 들어가서 문제가 되었던 듯 합니다.
파폭에서 한글입력이 안되어서 window 로 바꿨더니 swf 안에서 Q, A 같은 네비게이션 작동 안하네요 ㅎ
Favicon of http://okgosu.tistory.com BlogIcon okgosu | 2009.04.17 11:23 신고 | PERMALINK | EDIT/DEL | REPLY
인터렉션 디자인도 아직 못읽었는데...빨랑 봐야겠네요...^^

with okgosu (-..-)a
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.18 22:02 신고 | PERMALINK | EDIT/DEL
인터렉션 디자인은 회사 도서로 신청했는데 5월이나 되야 올듯 하네요 ㅎㅎ
위키북스에서 나온 UX 디자인 커뮤니케이션도 같이 샀는데 이제 읽어야될듯 ㅎ
Favicon of http://randorno.tistory.com BlogIcon 란도르노 | 2009.04.17 15:24 신고 | PERMALINK | EDIT/DEL | REPLY
프로젝트 중 맞닥뜨린 버그가 아직 해결이 안됐네요.
restrict를 이용해서 영문만 타이핑 가능하도록 제한을 둔 상태에서 영문을 작성한 후
한/영 변환키를 누르고 한글을 입력하면 백스페이스를 누른 것 같이
입력된 텍스트가 지워지는 버그가 있습니다.
결국 alwaysShowSelection으로 우회하기 신공를 시전해서 넘겼었지요.. ㅠ_ㅠ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.18 22:03 신고 | PERMALINK | EDIT/DEL
저도 같은 버그를 겪어봤는데, 문제시 되지 않아서 그냥 넘어갔던 기억이 ^^;
버그 보고를 해야겠네요 ㅎㅎ
Favicon of http://hhjae84.tistory.com BlogIcon 모지씨 | 2009.04.20 06:10 신고 | PERMALINK | EDIT/DEL | REPLY
두번째 줄에 구석수석이란 오타를 보고...
잠시 구석이가 수석인가...멍때렸다는 -,.-
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.21 16:00 신고 | PERMALINK | EDIT/DEL
오타났네 ㅋ =ㅁ= ㅋㅋ
수정했음. 감사!!
Favicon of http://jidolstar.com/blog BlogIcon 지돌스타 | 2009.04.21 15:04 신고 | PERMALINK | EDIT/DEL | REPLY
아~ 글 멋쪄라
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.21 16:00 신고 | PERMALINK | EDIT/DEL
형님이 더 멋지십니다. ㅎ
박스농사 | 2009.04.30 10:38 신고 | PERMALINK | EDIT/DEL | REPLY
아~ 글 멋짐
Favicon of http://cafe.naver.com/codestudy BlogIcon 이정칠 | 2009.04.30 12:17 신고 | PERMALINK | EDIT/DEL | REPLY
UX에 대해 무척 관심이 많은 1인 ^^
이미 예상되는 유저의 실수을 사전에 미리 차단해주는 배려가
요즘 개발자들이 고려해야할 필수 사항이죠 ^^

언제 시간되면 읽어봐야겠습니다.
감사합니다.
무명소녀 | 2009.07.02 10:06 신고 | PERMALINK | EDIT/DEL | REPLY
포카요케는 예전에 통계학강의 들을 때 품질관리 과목 들을때 나왔던 거였는디... (올해는 결혼땜시 1년 휴학 --ㅋ)
오랜만에 다시 보네. ㅎㅎ 나도 이책 한번 봐야겠다. 전산과 이수할때 4학년 과목에 있었는데. HCI 과목 넘 재밌음.
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2008.12.03 15:14
TextInput 으로 사용자에게 어떤 입력을 받게 되는 경우가 있습니다. 이때에 보다 많은 내용(예를 들어 사용자의 자기소개 같은 값)을 입력 받아야 하는 경우가 생기는데, 이때 사용하면 좋은 컴포넌트가 TextArea 입니다. TextArea 컴포넌트로 여러줄로 입력을 받게되면 사용자는 필연적으로 엔터키를 눌러 개행(줄바꿈)을 하게 되는데 오늘 이야기해보고자 하는 것은 이 개행에 대한 처리입니다.

문자열에 엔터를 처리하기 위해서 이스케이프 문자인 백슬래시(\)를 사용하여 처리를 하게 되는데, 보통 흔히 알고 있기로는 엔터를 처리하기 위해 \r\n 을 문자열에 포함시키면 된다고 아실 겁니다. 저도 학교에서 C수업을 들을때 그렇게 배웠습니다.

\r   : 캐리지리턴(carriage return) -  커서를 해당 줄의 처음으로 옮김
\n   : 라인피드(linefeed) - 커서를 해당 줄의 다음줄로 옮김

커서를 해당줄의 왼쪽으로 옮겨 다음줄로 내리면 엔터키를 친 것과 동일한 효과가 나오게 됩니다.
하지만 TextArea 에서는 \r 만으로 엔터키 처리를 하고 있습니다.




위와 같이 엔터키를 넣게 되면 실제로 TextArea의 text 속성에서 받는 문자열에는 "텍스트\r입력" 이라고 들어있게 되는 것이죠.

사용자에게 입력받은 해당 데이터를 서버에 저장하고 불러와 다시 TextArea 에 넣어줄때에 아무런 처리를 하지 않아도 상관없습니다. 어짜피 넣어진대로 다시 넣는 것이니까요. 하지만 서로 다른 언어에서 같은 데이터를 사용시에는 문제가 됩니다. 언어들마다 엔터의 처리가 다르기 때문이죠.

위에서 처럼 \r\n 으로 엔터키를 처리하는 경우도 있고, \r 만으로도, \n 만으로도 처리하는 경우가 있습니다. 만약 \r\n으로 엔터를 처리하는 시스템에서 만들어 놓은 문자열을 TextArea 에 대입하면 어떻게 될까요? "텍스트\r\n입력" 이라고 TextArea의 text 속성에 넣으면 아래와 같은 현상이 발생합니다.


위에서 보시는 것 처럼 \r\n 둘다 엔터키로 인식되네요.

참고로 말씀드리자면 MXML 상에서 위의 이스케이스 문자를 인식시키실때는 아래와 같이 하시면 됩니다.


아무튼, 저는 이와 같은 문제를 자바로 구성된 서버를 이용하면서 겪게 되었습니다. 해당 서버를 이용하는 또다른 쪽이 델파이로 구성되어 있는데, 델파이에서는 \r\n 으로 엔터키를 표현하는데, 플렉스에서 받아오니 엔터가 2번 입력되는 것 처럼 보이는 것은 물론 Flex 쪽에서 생성한 문자열은 델파이에서 엔터키가 없는 상태로 출력되는 것이었습니다.
물론 더 좋은 방법들이 있을꺼라 생각되지만, 저는 플렉스쪽에서 변환해서 쓰고 저장시에도 변환해서 보내기로 결정을 했습니다.
그래서 아래와 같은 코드를 구현하였습니다.



네이밍이 좀 별로네요.. ;;
엔터키의 처리가 다르다는 것을 알아두시면 좋겠네요. ;)


ps. Flash Player 10 이 공개된 이후 FP10 이 설치된 브라우저에서 이전 포스트의 swf 파일을 로드하지 못하는 경우가 생기네요.
정확하게 이유는 모르겠습니다. 티스토리 포럼에 같은 내용의 버그신고가 이어지고 있는데, 자세히 알아봐야겠습니다.

신고
Creative Commons License
Creative Commons License
Favicon of http://minsangk.com BlogIcon 민상k | 2008.12.08 02:11 신고 | PERMALINK | EDIT/DEL | REPLY
예전에 asp.net 과 연동하면서 저거 때문에 골치가 좀 아팠는데, \r 을 그냥 리턴으로 인식하는 것이었군요. 당시의 저도 안 되는 정규식 실력으로 힘겹게 깨작이던 기억이 나네요. 저런 함수 하나 만들어 놓으면 편하게 쓸 걸 그랬군요; 연동하는 언어가 동일하다면 change 이벤트 핸들러에 같이 물려 놔도 좋을 것 같습니다.

좋은 정보 감사합니다.

ps: 이제 RSS 로 들어와도 바로 글이 걸리네요? 예전엔 올블 배너 같은 것이 떴었거든요 -.-.-
ps 하나더: 코드 컬러 마스킹 해주는 녀석은 플러그인인가요?;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.08 11:37 신고 | PERMALINK | EDIT/DEL
올블 배너가 떴던가요? ^^;; 왜 떴지. .ㅎㅎ
코드 출력해주는 것은 구글에 있는 syntaxhightlighter 를 사용했습니다.
열이아빠님의 http://koko8829.tistory.com/305 글 참고하시면 좋겠네요 ^^
Favicon of http://adnaru.tistory.com BlogIcon 희희덕 | 2008.12.11 01:49 신고 | PERMALINK | EDIT/DEL | REPLY
이야.. ㅎㅎ 멋진 정보 감사합니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.14 18:00 신고 | PERMALINK | EDIT/DEL
방문 감사합니다 ;)
Favicon of http://cafe.naver.com/codestudy BlogIcon 이정칠 | 2008.12.11 08:26 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 정보 감사합니다. ^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.14 18:00 신고 | PERMALINK | EDIT/DEL
오우~ 형님 여기까지 방문해주시고 감사합니다.;)
서비짱 | 2008.12.12 13:10 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 블로그에 첨온건가....^^
몰랐네요.. 좋은정보들이 많네요...
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.14 18:00 신고 | PERMALINK | EDIT/DEL
^^ 자주 방문해주세요 ㅎ
Favicon of http://egg.pe.kr BlogIcon egg | 2008.12.14 20:00 신고 | PERMALINK | EDIT/DEL | REPLY
아이팟 터치 2세대...
그것도 여친님이...
ㅡㅠ 부럽습니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.15 10:34 신고 | PERMALINK | EDIT/DEL
저는 카메라를 사줬... ㅋ
Favicon of http://orochi77.egloos.com BlogIcon 꼬출든남자 | 2008.12.25 02:19 신고 | PERMALINK | EDIT/DEL | REPLY
첨부파일로 첨부한 플래시 파일을 FP10에서 로드를 못하게 되는 경우가 있죠..
네이버의 게시판들도 유사한 문제가 있는데 그게 HTTPHeader에서 attach 머시기 하는 값과 관련이 있다고 합니다.
헤더 정보에 그 값이 있으면 FP10에서는 SWF를 다운로드 할 파일로 인식을 하여 플레이어에서 반사시킨다는..
어도비 테크노트에 있는것 같던데요.. (자세한건 저도 회사 가서 찾아봐야 할 듯 합니다)

ps. 게릴라군이랑 지금 같이 근무하시나요?? ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.25 15:21 신고 | PERMALINK | EDIT/DEL
아하 그렇군요 ;) 찾아보겠습니다. ;)
티스토리 사용중이라 원인을 안다해도 제가 할 수 있는 건 없겠군요 ^^;;;

게릴라님이랑 같이 근무는 아니고요.
온라인에서 쭉 알다가 얼마전에 오프라인에서 실제로 만나뵈었어요 ㅎㅎ
담에 꼬출든남자님도 함께 뵈었으면 좋겠네요~ ^^;
Favicon of http://orochi77.egloos.com BlogIcon 꼬출든남자 | 2009.01.16 00:33 신고 | PERMALINK | EDIT/DEL
http://www.adobeflex.co.kr/iwt/board/board.php?tn=pds_tech&id=213&mode=view
여기에서

어떤 HTTP 서버들은 다음과 같은 응답 헤더를 보내기도 한다:



Content-Disposition: attachment


이 내용이 관련있을것 같아요
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.01.16 10:16 신고 | PERMALINK | EDIT/DEL
저도 살펴봤는데 이거 뭐 제가 어떻게 할 수 있는 문제가 아니더군요..;;
티스토리 언제 고쳐줄래나.;;
미유 | 2009.01.07 15:50 신고 | PERMALINK | EDIT/DEL | REPLY
리눅스에 쓰는과정에서 한참 고생했는데 정말 감사합니다~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.01.08 23:41 신고 | PERMALINK | EDIT/DEL
도움이 되셨다니 정말 다행입니다. ;)
좋은 하루되세요~
Favicon of http://blog.naver.com/gohappy81 BlogIcon Douglas9 | 2009.01.16 11:39 신고 | PERMALINK | EDIT/DEL | REPLY
오 좋은 정보 감사드려요^^
그리고 꼬출든남자 형님 회사에서 조용하시더니 여기 계셨군요 -0-
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.01.16 11:51 신고 | PERMALINK | EDIT/DEL
방문 감사드립니다. ;)
트랙백은 더더욱 감사드립니다. ;)
장문영 | 2009.01.20 11:21 신고 | PERMALINK | EDIT/DEL | REPLY
Air에서는 파일을 읽어서 "\r\n"으로 열심히 파싱하는데도 불구하고 안되었는데 "\n"으로 해결함 -_-; Air에서는 enter값이 \n인가요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.01.20 17:04 신고 | PERMALINK | EDIT/DEL
FlashPlayer이건 AIR 위에서 이건 간에 TextArea에서 사용자가 입력한 문자열의 개행은 \r로 처리합니다.
본문에서 있다싶이 \n도 개행으로 처리하기도 합니다.

질문으로 유추해보건데 파일을 읽으셨다니 파일에 있는 문자열에 \r\n이 동시에 사용되었을 경우에는 \r 하나만 사용하도록 변경해서 TextArea에 올려주는 것이 필요합니다.
아마도 거꾸로 작업하신듯 싶네요. ^^
퍼플린 | 2009.06.15 17:09 신고 | PERMALINK | EDIT/DEL | REPLY
움.. 나도 똑같은 내용을 블로그에 썼었는데 여기도 있넹 ㅎㅎ

플레시쪽 작업하면서 똑같은 문제가 나와서 고민했던적이 -ㅅ-;;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.15 18:31 신고 | PERMALINK | EDIT/DEL
다들 비슷한 문제를 겪는데 공유가 안되니 계속 삽질만... ㅋ
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2008.09.28 22:30
단도직입적으로 말씀드리자면, new 키워드는 비용이 비쌉니다. 많은 리소스를 사용하게 된다는 말이죠. 물론 안쓸 수야 없죠. 새로운 객체를 생성하려면, 당연히 써야됩니다. 하지만, 사용하게 되면 그만큼의 연산과 메모리의 차지는 어쩔 수가 없습니다. 이런 문제들로 인해 좀 더 효율적인 객체의 사용을 위해 객체 풀(Object Pool) 을 구성하여 사용한다던가 하는 방법을 고민하게 되죠.
본 포스트에서는 객체 풀에 대해서 설명하지는 않겠습니다. 위에 링크로 걸어놓은 영구기님의 포스트를 참고하시도록 하시고요, 이번 포스트에서 제가 설명하고자 하는 것은 new 키워드를 사용하지 않고서도 사용할 수 있는 타입들에 대한 사용방법입니다.

데이터형태는 아래와 같이 2가지의 데이터형이 존재합니다.

Primitive Data Type : Boolean, int, uint, Null, Number, String, void
Complex Data Type : Object, Array, Date, Error, Function, RegExp, XML, XMLList


기본적인 데이터 형태(Primitive Date Type)의 변수선언시에는 물론 new 키워드는 사용하지 않습니다. 하지만 사용하지 못한다는 것은 아닙니다.
문자열을 저장할 때에 String 를 사용하게 됩니다. 이 String 형 변수는 다음과 같이 선언하게 됩니다.

하지만 아래와 같이 new String() 이라고 할 수도 있습니다.

int, uint, Number, Boolean 도 마찬가지로 new 키워드를 이용하여 변수에 할당해줄 수 있습니다. 허나 그렇게 사용하지는 마십시오. 기본적인 데이터 형태의 변수는 new 키워드를 사용하지 않아도 메모리가 할당되게 됩니다. 게다가 더 빠르고 간편합니다.

그래도 확인하고 넘어가는 차원에서 Number 형태의 변수의 할당에 대해 살짝 실험해보도록 하겠습니다. 아래의 코드를 보시면 Number 변수를 할당시에 new Number()를 사용하는 것과 직접 값을 입력하는 것에 대해서 속도를 비교해보고 있습니다. new 키워드를 사용하지 않는 것이 더 간편합니다. 그 아래에는 실제 결과물입니다. 테스트 버튼을 클릭하셔서 테스트 해보시기 바랍니다.







그렇다면 보다 복잡한 데이터 형태(Complex Data Type)의 변수를 선언시에는 new 키워드를 어떻게 쓰지 말라는 말일까요?
가장 먼저 많이 사용하는 Array에 대해서 말씀드려보겠습니다. 우선 Array를 선언시에 아래와 같이 선언할 수 있습니다.

이전 포스트에 살짝 언급하였습니다만, Array의 경우는 [] 를 이용하여 새로운 Array를 할당할 수 있습니다.

이와 비슷하게 Object를 할당할 때에도 new Object()  대신에 {} 를 이용하여 새로운 Object 할당이 가능합니다.
아래와 같은 선언을 다른 예제 소스코드에서 흔히 보셨을겁니다.

위에서 설명드린 것과 같이 Array 를 할당시에 [] 를 이용하고 Array 내부의 값을 {}를 이용하여 Object 형태로 정의하였습니다.
만약 [], {} 없이 선언하려고 한다면 아래와 같이 하여야할 것입니다. (물론 이렇게 사용할 일은 거의 없죠. 매우 극단적인 예랄까요? )


RegExp 같은 경우도 new 키워드를 사용하지 않고 선언 가능합니다.


XML 도 마찬가지입니다. 아래와 같이 흔히 사용하시고 있죠?
2번째 라인에 있는 것처럼 사용하실 일은 없을 듯합니다. 물론 String 형태의 XML 데이터라면 XML 로 변환하려면 2번째 라인처럼 해야겠죠.


마지막으로 위에서 말씀드린 Array와 Object 의 new 키워드 사용 유무에 대한 속도차 테스트를 해보고 마무리 짓겠습니다.
(RegExp 는 속도차가 거의 없어서 생략하였고,  XML은 쓸일이 없을 것 같아 생략하였습니다. ㅎ)

아래는 Array를 테스트한 코드입니다.

아래는 Object를 테스트한 코드입니다.




뭐 결론은 new Array() 대신에 [], new Object() 대신에 {} 를 사용하자는 것입니다. ;)
긴 글 읽어주셔서 감사합니다. ;) 다 읽으신 후에는 덧글 하나 써주시는 센스!!

참고자료 :
객체 풀[Object pool]을 이용해 보자.  - 영구기님 블로그
ActionScript3.0 너는 누구냐? - 엄진영님 Flex 챔피언 블로그

신고
Creative Commons License
Creative Commons License
Favicon of http://wooyaggo.tistory.com BlogIcon 우야꼬  | 2008.09.29 09:45 신고 | PERMALINK | EDIT/DEL | REPLY
Best Practice에서도 new 보다는 [] 나 {} 를 쓰라고 나와있더라구요.
좋은 내용 ㄳ~
(인액션 책에 추천사 넣으셨더라구요~ ㅋㅋ 서점가서 보고 왔는데 많이 듣던 이름이여서 내심 반가웠다능~)
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.29 13:12 신고 | PERMALINK | EDIT/DEL
제가 쓴 서평은 짤렸.. .ㅋ
매번 방문해주셔서 감사합니다. ;)
신준섭 | 2008.09.29 10:01 신고 | PERMALINK | EDIT/DEL | REPLY
항상 좋은 자료 잘보고갑니당.^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.29 13:12 신고 | PERMALINK | EDIT/DEL
네~ 좋은 하루 되세요~ ;)
Favicon of http://lovedev.tistory.com BlogIcon lovedev | 2008.09.29 11:01 신고 | PERMALINK | EDIT/DEL | REPLY
ObjectPool을 잘 사용하면 필시 좋은 건 사실입니다.
다만 GC에 대한 고민이 있어야 겠죠. GC관리를 풀관리자가 잘 해주면 관계는 없겠지만..
Java에서도 ObjectPool은 신중하게 사용되어야 한다고 논의 되고 있습니다.
때론 메모리에서 인스턴스화를 하지 않은 상태로 객체를 가지고 있는 자체가 문제가 될 때가 있습니다..그 상태야 말로 GC를 할 수도 없는
메모리 할당만 받고 있는 누수의 원인이 되기 때문입니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.29 13:13 신고 | PERMALINK | EDIT/DEL
매번 좋은 말씀 감사합니다. ;)
저도 ObjectPool 은 실제로 개발시에는 사용해본 적은 없네요 ^^;
보다 좋은 방법들이 고려되고 나타나기를 기대합니다 ;)
Favicon of http://bnufactory.com/ BlogIcon BNU | 2008.09.29 16:35 신고 | PERMALINK | EDIT/DEL | REPLY
자바스크립트에서도 Flex에서처럼 큰 폭은 아니지만 [], {}가 좀 더 빠르네요.
좋은 정보 감사합니다. :)
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.29 19:20 신고 | PERMALINK | EDIT/DEL
아무래도 리터럴이니까요 ;)
좋은 정보 되셨다니 기분 좋습니다 ㅎ
Favicon of http://www.jinhokim.com BlogIcon 찌노 | 2008.09.29 16:59 신고 | PERMALINK | EDIT/DEL | REPLY
무의식적으로 Array 선언시 [] 를 사용하고 있었는데 더 좋은방법이라니.. 왠지 모를 뿌듯함이.. ㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.29 19:21 신고 | PERMALINK | EDIT/DEL
좋은 습관!! ㅎㅎ
Favicon of http://2rang.tistory.com BlogIcon 꽃녀 | 2008.09.30 00:09 신고 | PERMALINK | EDIT/DEL | REPLY
항상 연구하시는 쉰님..
자알~ 배우고 갑니당 ^^
new가 뽀대가 나긴 한데 ㅎㅎ
내일 보면 쌩까지 마셈~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.30 09:40 신고 | PERMALINK | EDIT/DEL
오늘이군요!! ;)
좀 있다 뵙겠습니다 ㅎㅎ
Favicon of http://okgosu.tistory.com BlogIcon okgosu | 2008.09.30 01:19 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 정보 잘 보고 갑니다...
담에 세미나 있으면 발표 의뢰해야겠습니다...^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.30 09:40 신고 | PERMALINK | EDIT/DEL
영광이죠! ;)
찾아주셔서 감사합니다 ㅎ
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2008.09.30 10:19 신고 | PERMALINK | EDIT/DEL | REPLY
멋진 글입니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.10.01 12:52 신고 | PERMALINK | EDIT/DEL
지돌스타님이 더 멋지시면서! ㅋ
차차 | 2008.10.09 09:58 신고 | PERMALINK | EDIT/DEL | REPLY
좋은내용 감사해요.
센스있어 보이려고 덧글 남겨요ㅋㅋ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.10.09 13:32 신고 | PERMALINK | EDIT/DEL
센스 만점이신데요! ^-^
연월태생 | 2008.10.09 16:57 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 글이에요~
코딩 습관을 바꾸던지 해야 할듯하네요 ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.10.13 10:00 신고 | PERMALINK | EDIT/DEL
좋은 쪽으로 바꾸는 것이니 즐거운 마음으로 ㅎㅎ
수채화 | 2008.11.05 11:02 신고 | PERMALINK | EDIT/DEL | REPLY
좋은글 잘보고갑니다~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.11.07 16:58 신고 | PERMALINK | EDIT/DEL
방문 감사드려요~ :)
덧글은 더 감사드립니다 ㅎ
Favicon of http://orochi77.egloos.com BlogIcon 꼬출든남자 | 2008.11.12 00:47 신고 | PERMALINK | EDIT/DEL | REPLY
아.. 정말 주옥같은 내용들이에요..
검쉰님 포스트 주욱 보고 공부해야게써요~ ^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.11.13 18:27 신고 | PERMALINK | EDIT/DEL
칭찬 감사합니다. ;)
Favicon of http://shinlucky.tistory.com BlogIcon shinlucky | 2008.11.27 17:54 신고 | PERMALINK | EDIT/DEL | REPLY
이거 플래쉬 viewer 10으로 바뀌면서 티스토리내에 올린 파일들은 안보이는거죠?
(다른 계정에서 링크한건 보이던데...)

안보임 ㅠ.ㅜ;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.02 01:17 신고 | PERMALINK | EDIT/DEL
제 회사 컴에 10이 설치되어 있는데 제대로 나옵니다 ^^;
뭔가 다른 문제인듯 싶네요;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.06 23:13 신고 | PERMALINK | EDIT/DEL
다시 확인해보니 10 설치후에 나타나는 문제인듯 싶군요;
한동안 바빠서 정신없다가 이제서야 문제점을 인식했습니다;
김병건 | 2008.12.03 13:02 신고 | PERMALINK | EDIT/DEL | REPLY
좋은정보 감사합니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.03 14:28 신고 | PERMALINK | EDIT/DEL
방문 감사드려요~ :)
도움이 되셨으면 좋겠네요 ㅎ
모험가 | 2008.12.23 18:37 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 글 잘 보고 갑니다~~ ㅋㅋㅋ 감사합니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.12.25 15:18 신고 | PERMALINK | EDIT/DEL
덧글감사합니다~ :)
Favicon of http://shallaazm.tistory.com BlogIcon shallaa | 2009.01.27 02:16 신고 | PERMALINK | EDIT/DEL | REPLY
저도 이제 기왕이면 싼거 애용해야 겠네요- ㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.01.28 10:34 신고 | PERMALINK | EDIT/DEL
방문 감사드려요~ :)
어쩔수 없이 비싼거 써야될때도 있겠죠? ㅎ
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.04.29 10:51 신고 | PERMALINK | EDIT/DEL | REPLY
역시 형님 블로그랑 강민형님 블로그에 제가 원하는 자료들이 많아요
Favicon of http://www.iruis.net BlogIcon ☆~ | 2009.08.17 14:39 신고 | PERMALINK | EDIT/DEL | REPLY
Nunber나 String, RegExp같은 불변 객체는 new를 생략시엔 미리 생성 된 객체 또는 풀링을 이용하여 컴파일러 차원에서 값이 대입(결과적으로 new는 되지만 한번만)만 되도록 변형 되지만 Array라든지 Object, XML객체와 같은 값이 변하는 객체마저도 new를 않쓰는 경우 빨라진다는 것이 신기하네요. 값이 변하는 객체마저 속도가 빨라지는 근본적인 이유는 연구할만한 내용이네요.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.08.19 10:42 신고 | PERMALINK | EDIT/DEL
연구하셔서 내용을 공유해주시면 많은 분들께 도움이 될 것이라 믿습니다 ;)
OneLove | 2009.09.03 16:18 신고 | PERMALINK | EDIT/DEL
전역메서드를 사용함으로..빠르겠죠
array = new Array() Array 클래스를 이용
array = [] 전역메서드를 이용
자세한 내용은 여기를 참조해보세요
http://help.adobe.com/ko_KR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f3f.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7f1b
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2008.09.07 02:05
본 포스트는 Adobe Flex 공식사이트에서 진행하는  8월 RIA EVENT - 기술문서 리뷰 이벤트, Flash편 응모하기 위하여 작성 된 글입니다.


제가  리뷰하려고 하는 기술문서는 오창훈님께서 작성하신 'Flex와 Flash간의 파라미터 주고 받기' 라는 제목의 기술문서입니다. (이 글을 읽지 않으신 분께서는 링크를 클릭하셔서 우선 기술문서를 읽으신 후 제 포스트를 읽으시면 도움이 되실 것이라 생각됩니다. ) 위 기술문서에서는 swf 파일끼리의 파라미터의 전달에 대해서 다루고 있습니다. 크게 2가지 관점에서 이야기를 전개하고 있는데요, 해당 그림을 인용하자면 아래와 같습니다.
1. swf에서 다른 swf파일을 로드하는 경우

1. swf에서 다른 swf파일을 로드하는 경우

2. 서로 다른 영역에서 파라미터를 공유해야 하는 경우

2. 서로 다른 영역에서 파라미터를 공유해야 하는 경우


위의 문서에는 '1. swf에서 다른 swf파일을 로드하는 경우' 에서
  • url 을 통한 데이터 전달 (파라미터)
  • ApplicationDomain
'2. 서로 다른 영역에서 파라미터를 공유해야 하는 경우' 에서는
  • ExternalInterface를 이용하는 방법
  • LocalConnection을 이용하는 방법
들을 알아보고 있습니다. 이미 완성된 기술문서인만큼 서로간의 파라미터 주고 받기에 대해서는 더할나위 없이 탄탄한 내용이라 할 수 있겠습니다. 처음의 예를 들어주신 URL 뒤에 파라미터를 넣는 방법은 아주 유용한 방법입니다. swf 의 상호간의 파라미터전달 뿐만이 아니라 저 같은 경우에는 WebService나 HTTPService를 사용하는 Flex 어플에서 접속해야 할 서버주소를 파라미터를 통해서 지정하는 방법을 주로 쓰고 있습니다. 이 때 장점은 코드 내에 서버접속 주소를 하드코딩하지 않아도 된다는 장점이 있죠.

이 리뷰를 쓰게된 이유는 기술문서에서 언급하고 있지는 않지만 Flex에서 swf 파일을 로드한 경우 간편하게 swf에 접근할 수 있는 방법이 있기에 그 것을 언급하기 위함입니다. (물론 물질에 눈이 멀어서라는 이유도...) Flex에서 swf 를 SWFLoader를 통해 로드시, 해당 swf 가 ActionScript 3.0 으로 제작된 것이면 간편하게 SWFLoader 객체의 content 속성을 통해서 Flash 의 경우 MovieClip, Flex 의 경우 SystemManager 형태로 접근이 가능합니다.

Flash와 Flex 두 경우 모두 소개해보고자 합니다. 로드되는 swf 파일들은 동일하게 아래와 같이 간단하게 메소드를 제공하고 있습니다.

위의 코드에서 보이시는 myImage 라는 것은 Flex 의 경우 Image 객체, Flash 의 경우 MovieClip의 인스턴스명입니다. iconVisual 라는 속성을 통해 현재 myImage 가 visible 상태를 제어할 수 있게 됩니다. 위의 swf 를 로드하는 예제코드는 아래와 같습니다.



실제 결과물을 보시려면 이미지를 클릭하여주세요.
swf 경로명 관련, 티스토리에 직접 업로드가 힘들어 링크를 걸었습니다.

위의 코드에서 보실 수 있 듯
, Flex 에서 만든 swf 는 SystemManager 로 접근하게 되어 SystemManager 의 application을 불러온 swf 명으로 캐스팅 하여 해당 메소드에 접근하시면 되겠습니다. Flash 의 경우는 MovieClip 형태로 들어오게 됩니다. 직접 메소드를 호출하셔도 됩니다.
물론 메소드를 호출하고 있는 예제입니다만, 각 객체들을 직접 접근하시는 것도 가능합니다. 다만, 다른 개발자와 협업이 이루어져야 된다면 특정 메소드를 구현하기로 사전에 정해놓고 그대로 사용하는게 더욱 좋겠죠? ;)
여기서 살짝 짚고 넘어가야 되는 부분은 swf가 SWFLoader에 embed 되어있는 경우는 위의 방법대로는 사용이 안된다는 것입니다. (코드를 확인해보세요. embed 안되어있죠?) embed 시에는 MovieClipLoaderAsset 형태로 들어있기때문에 위의 방법으로 접근이 불가합니다. embed시에는 어떻게 해야되는지는 잘 모르겠네요 ;^(

안타깝게도 AS2.0 으로 제작된 swf 또한 위와 같은 방법으로 접근이 불가합니다. AS 3.0 부터는 기존의 AS1.0 및 AS2.0에서 사용되던 AVM(Actionscript Virtual Machine) 과는 다른 AVM 을 사용하고 있습니다. 이전버전의 AVM을 AVM1, AS3.0 이 실행되는 AVM은 AVM2 이라고 명명합니다. (물론 Flash Player 9 버전 이후부터는 AVM1, AVM2 가 둘다 포함되어 있습니다.) AS 1.0 이나 AS 2.0으로 제작된 swf 파일의 경우 Flex(AS 3.0) 에서 로드될 경우 AVM1Movie이라는 이름의 객체로 할당이 되게 되는데요, AVM1Movie 객체와 AVM2 객체 간에 호환성(메서드 호출 또는 매개 변수 사용 등)이 없기때문에, 접근이 불가한 것이죠.
이럴때에 기술문서에서 설명하여주신 LocalConnection을 사용하시면 되겠습니다. LocalConnection에 대해서는 기술문서에 충분히 자세히 설명하고 있으니 더 이상 언급은 하지 않겠습니다. ;)
또 다른 방법도 있는데요, Flash Interface라는 것이 있습니다. 저도 검색하여 찾은 것이라 자세한 내용은 패스~^^;


ps. 코드가 필요하신 분은 위의 swf 에서 마우스 우클릭하셔서 View Source 하시면 다운로드 하실 수 있습니다 ;^)
신고
Creative Commons License
Creative Commons License
Favicon of http://2rang.tistory.com BlogIcon 꽃녀 | 2008.09.11 09:17 신고 | PERMALINK | EDIT/DEL | REPLY
헐헐... 역시 부지런함..

쉰님 조만간 뵐수도 있겠네여 ^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.11 15:25 신고 | PERMALINK | EDIT/DEL
넵. 캠프때 뵙겠습니다 ;)
Favicon of http://egg.pe.kr BlogIcon egg | 2008.09.11 09:46 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 포스팅을 보면서 공부좀 해야겠다는 생각이 절로 듭니다.하하하;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.11 15:25 신고 | PERMALINK | EDIT/DEL
우리 모두 열공~ ㅎ
Favicon of http://lovedev.tistory.com BlogIcon lovedev | 2008.09.11 12:39 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 잘 지내시죠?
와...정리 정말 잘하시네요 ^^;
근데 조금 부끄럽긴 하네요 :)
ApplicationDomain을 이용한 접근 방법이죠.. 맞아요 기술문서에서 언급하지 않았어요 저 방법은 ^^
ApplicationDomain에 대한 이해를 하고 넘어가야 하는 부분이라 이야기가 길어질거 같더군요.

그래서 문서내용에 http://www.adobeflex.co.kr/iwt/board/board.php?tn=pds_tech&id=169&mode=view 이 부분을 참고하라고 넣어 놨었습니다 ^^;;

내용 보충해주셔서 너무 감사드려요~.. 복 받으실꺼에요 ^^
좋은 하루 되세요~

ps: SWFLoader로 swf를 로드하게 되는 경우도 마찬가지로 ApplicationDomain을 활용해서 접근이 가능해요 ^^ SystemManager는 그런 일을 대신 해주는 역할을 하고 있습니다..
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.11 15:27 신고 | PERMALINK | EDIT/DEL
물론 아실꺼라고 생각했습니다. ^^; ApplicationDomain 관련 링크 거신거 보고 말이죠 ㅎ

알면서도 언급한 것은 사실 ApplicationDomain에 대한 이해가 쉽지 않다는 겁니다. ㅎㅎ 저또한 완벽하게 이해하고 있다 하기 어렵고요. 그래서 보다 알기 쉽게 접근할 수 있는 위의 방법을 소개해보았습니다 ;)

그리고 이벤트 응모하려고 쓴거기도..... ;^(
ps. 캠프때 발표 기대하겠습니다 ㅎㅎ
찌노 | 2008.09.12 10:02 신고 | PERMALINK | EDIT/DEL | REPLY
움.. 결국엔 AS2.0 은 접근이 불가한거네요 ; 아주 안되는건 아니지만 .. 번거러운 부분이 없지않아 있네요 ;;
뭐.. 억울하면 AS 3.0 으로 만들어버리라는.. ㅋ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.12 13:20 신고 | PERMALINK | EDIT/DEL
본문에 있는 Flash Interface 를 이용하면 되는 듯 합니다. 아직 자세하게 살펴보진 않아서 정확하게 말씀드리기가 힘드네요 ㅎ
박스농사 | 2008.09.18 22:10 신고 | PERMALINK | EDIT/DEL | REPLY
음..설마이거 나땜에 쓴거 아니겠죠?
위방법은 아니지만 해결했지롱~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2008.09.19 14:13 신고 | PERMALINK | EDIT/DEL
다른 방법도 가르켜주시라요~
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
prev"" #1 #2 #3 next