'Flash'에 해당되는 글 6건
2009.07.01 10:16
Flex3 in Action 이미지 출처 : 강컴

Flex3 in Action 이미지 출처 : 강컴

ActionScript에서 배열은 Array 를 사용하게 됩니다.
Java 와 달리 동적배열이어서 크기를 정하지 않고 임의대로 push, pop 등의 메소드를 통해 편리하게 사용할 수 있습니다. (Java에서는 ArrayList를 사용하시면 편리하죠!)

얼마전에 읽었던 Flex3 in Action 에 보면 'Working with ActionScript' chapter에 Array에 대해서 설명하고 있는데요, 여기에 다름과 같이 배열에 대해서 정의를 하고 있습니다.

1. Indexed arrays
2. Associative arrays

1번 Indexed arrays 는 우리가 흔히 사용하는 Array를 말합니다. 숫자 인덱스를 가지고 다음과 같이 값에 접근을 하게됩니다.

그리고 2번 Associative arrays는 흔히 연관배열 또는 해시(Hash)라고 부르는 배열로 key 값을 가지고 접근하게 됩니다. 책의 예제는 다음과 같습니다.


위의 예제는 이상없이 잘 동작합니다만, ActionScript 에서 연관배열(해시)를 위와 같이 사용하면 안됩니다.
그 이유는 Livedocs 에 잘 나와있습니다.

Array 클래스를 사용하여 번호가 매겨진 요소 대신 명명된 요소가 들어 있는 데이터 구조인 연결 배열(해시) 을 만들지 마십시오. 연결 배열을 만들려면 Object 클래스를 사용해야 합니다. ActionScript에서 Array 클래스를 사용하여 연결 배열을 만들 수는 있지만 이렇게 하면 연결 배열에 Array 클래스 메서드나 속성을 사용할 수 없습니다.
Livedocs 에서 발췌

ActionScript 에서는 Object 클래스를 이용하여 해시를 구현하라고 설명하고 있습니다. 물론 Object가 모든 클래스의 기본이 되기때문에, Array를 이용하여 연관배열(해시)를 만들 수는 있습니다. 하지만 해당 클래스를 만든 의미가 없어지죠. Array는 index를 이용한 배열로 설계된 것이기 때문입니다. 예를 들어 임의로 인스턴스화 시킬 수 있는 Sprite 객체를 연관배열로 사용한다는 것은 정말 황당한 일이라고 할 수 있겠습니다. 해당 목적에 맞게 사용해야 된다는 것이죠 ;)
아래에 Object로 연관배열을 사용하는 방법에 대해서 발췌했습니다.
Object 클래스를 사용하여 연결 배열을 만들 수 있습니다. 기본적으로 연결 배열은 Object 클래스의 인스턴스이며 키-값 쌍은 각각 속성과 속성 값으로 표현됩니다. 결합적 배열을 Object 데이터 유형을 사용하여 선언해야 하는 또 다른 이유는 이 경우 객체 리터럴을 사용하여 결합적 배열을 채울 수 있기 때문입니다. 단, Object 데이터 유형으로 선언하는 경우에만 가능합니다. 다음 예제에서는 객체 리터럴을 사용하여 연결 배열을 만들고 도트 연산자와 배열 액세스 연산자를 사용하여 항목에 액세스한 다음 새 속성을 만들어 키-값 쌍을 새로 추가합니다.

Livedocs 에서 발췌

위와 같이 Object를 이용하여 연결배열(해시)를 만들수 있습니다.
그리고 추가적으로 해당 값의 키(Key)값을 다른 객체로 하기 위해서 ActionScript 3.0에서는 Dictionary 클래스를 제공합니다.

Dictionary 클래스를 사용하면 키 비교에 완전 항등 연산자(===)를 사용하는 동적 속성 컬렉션을 만들 수 있습니다. 객체를 키로 사용하는 경우 객체에 toString()을 호출하여 반환되는 값이 아니라 객체의 ID가 객체를 찾는 데 사용됩니다.

다음 명령문은 Dictionary 객체와 키 객체 사이의 관계를 보여 줍니다.

Livedocs 에서 발췌


실제 해당 클래스의 구현 목적대로 사용하여야 오동작을 막을 수 있습니다.  게다가 협업시에 큰 걸림돌이 될 수 도 있습니다.
이 글을 읽으시는 분들은 사용하시는 클래스가 구현된 목적대로 사용하고 계신가요?

좋은 하루 되세요 :-)

ps. 책이 한글판으로 발간된다는 소식은 없는데, 만약 된다면 위의 오류에 대해서는 수정해서 나왔으면 좋겠네요.
ps2. AS 한글문서에는 연관배열이 아닌 연결배열로 번역이 되어있더군요. 정확하게 무엇이 맞는지는 저도 잘 모르겠네요 :)

신고
Creative Commons License
Creative Commons License
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.07.13 12:01 신고 | PERMALINK | EDIT/DEL | REPLY
난 개인적으로 Dictionary 선호..
그나저나.. key.toString = function() { ... }
AS 3.0 이후로, 다른 사람이 쓰는 건 정말 간만에 보는 듯..
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.13 23:11 신고 | PERMALINK | EDIT/DEL
난 AS 3.0 부터 해서 어색한 사용법 ㅎㅎ
Favicon of http://as3.kr BlogIcon 우야꼬 | 2009.07.13 18:17 신고 | PERMALINK | EDIT/DEL | REPLY
맞아 연관배열을 배열의 기능으로 아는 사람 정말 많더라.
굿 포스팅~
마지막에 "클래스의 구현 목적대로 사용하여야"에 공감 100표 >.<)b
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.13 23:11 신고 | PERMALINK | EDIT/DEL
엉뚱하게 쓰면 곤란하단말야 :)
Favicon of http://hangunsworld.com BlogIcon Han Sanghun | 2009.07.13 21:15 신고 | PERMALINK | EDIT/DEL | REPLY
처음부터 배열을 연관배열로 사용하지 못하도록 막아 놓았으면 되는 것을,
정작 뒷문은 만들어 놓고 정문으로만 다니라는 것은 좀 프로답지 않은데요 ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.13 23:13 신고 | PERMALINK | EDIT/DEL
제가 보기에는 dynamic 클래스라서 맘대로 속성을 넣을 수 있었는데, 그게 어쩌다보니 연관배열처럼 쓸 수 있게 된건지도.;;
그래서 Array를 연관배열로 쓰지말아라.. 라고 LiveDocs에 넣은 것 같기도 ㅎㅎ
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2009.07.13 22:28 신고 | PERMALINK | EDIT/DEL | REPLY
난 Dictionary를 커스터마이징한 HashMap을 만들어 사용하고 있음~~ ^^
정말 필요할때 Dictionary의 부족한 점을 말끔히 해결해준다는 ~~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.13 23:14 신고 | PERMALINK | EDIT/DEL
형님 그런건 공개하셔야죠! ㅋㅋㅋ
차차 | 2009.07.14 20:55 신고 | PERMALINK | EDIT/DEL | REPLY
ㅋㅋ오빠 메인사진 바꼈네요..깜놀-,.-
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.22 18:31 신고 | PERMALINK | EDIT/DEL
뭘 또 깜놀까지야 ㅋ
Favicon of http://jjaeko.tistory.com BlogIcon 째코 | 2009.07.15 00:02 신고 | PERMALINK | EDIT/DEL | REPLY
유익한 내용이네요.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.22 18:31 신고 | PERMALINK | EDIT/DEL
감사감사 :)
Favicon of http://douglas9.pe.kr BlogIcon douglas9 | 2009.07.20 12:16 신고 | PERMALINK | EDIT/DEL | REPLY
그런데 한가지 좋은 점은 아주 미묘하지만 Array가 조금 빠르 더군요.
다들 그래서 쓰는 건 아닌지... 하지만 그 정도의 미묘한 차이 보다는
안정성이 더 중요하겠죠^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.27 22:34 신고 | PERMALINK | EDIT/DEL
맹기완님이 좋은 글 적어주셨어요 ;)
http://www.diebuster.com/?p=690
치우비 | 2009.07.25 01:47 신고 | PERMALINK | EDIT/DEL | REPLY
음...... 잘보고 갑니다..
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.08.02 00:20 신고 | PERMALINK | EDIT/DEL | REPLY
아아.. 내공 부족을 뼈저리게 느끼고 갑니다.
| 2010.04.25 06:35 신고 | PERMALINK | EDIT/DEL | REPLY
그렇다면... Object로 했을때 특정 KEY에 VALUE를 추가로 넣고싶을땐 어떤 명령을 써야하나요? Array라면 push를 쓰면 되는데.
저도 저 문구때문에 Object로 할려고 했는데...아 괴롭네요 벌써 5시간째 씨름하다가 걍 Array로 완성하긴했습니디만...음... 굽신굽신 조언좀부탁드립니다.
참고로
obj[x].key = value; 또는 obj.key[x] = value; 등등 뭐 이런것들은 안됩니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.04.25 17:24 신고 | PERMALINK | EDIT/DEL
obj[x].key = value; 라는 코드가 있을 때, x가 String 이 아니라면 일종의 객체키가 될 것입니다.
이럴 경우 Dictionary 를 사용하시면 될 것 같네요.

저는 본문에서 다루었던 것 처럼 연관배열로 사용할 경우가 아닌 경우에는 Object를 직접 사용하는 것을 꺼립니다. 예를 들어 obj[x].key 라고 정의하셨다면, x라는 키를 통해 받은 객체가 key라는 키를 이용해 값을 가지고 있게 될텐데, 이런 코드는 컴파일러 수준에서는 값이 존재하지 않다거나 하는 문제를 잡을 수 없게되죠. 런타임시에 문제가 발생하게 되므로 곤란해집니다. 특정 속성들을 사용하시는 경우에는 따로 클래스를 만드셔서 사용하시기를 권해드립니다.
울랄라 | 2010.07.30 16:16 신고 | PERMALINK | EDIT/DEL | REPLY
그럼 Object를 연관배열(해쉬처럼)처럼 사용할때,, 전체를 비우거나 일부만 비우려고 할때 어떤식으로 해야 하나여?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.08.02 15:10 신고 | PERMALINK | EDIT/DEL
'Object가 연관배열로 사용하기 위해서 작성되었다기 보다는 연관배열로 사용이 가능하다.' 라고 생각하시면 쉽겠습니다.
말씀하신 기능은 추가로 구현하여야할 것 같네요.
Favicon of http://storyjava.tistory.com/ BlogIcon KevinKim | 2013.01.18 15:11 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 좋을 글 너무 감사합니다. 생초보에 사수없이 혼자 개발하다보니 항상 어려운 점이 많은데, 좋은 글 너무 큰 도움이 되고있습니다.
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.06.18 23:28
오랫만에 블로그로 인사드립니다. (__)

최근에 BMP 파일을 Flex 에서 읽어다 쓸 일이 생겼습니다.
Flex에서 이미지를 보여주는 컴포넌트인 Image 컴포넌트는 JPEG, PNG, GIF, SWF, SVG 같은 확장자만을 지원하고 BMP은 지원하고 있지 않기 때문에 BMP을 바로 넣을 수는 없습니다.(웹에서 BMP 를 쓰는 무식한 짓을 하면 안되겠죠.. ㅜㅜ 크기도 큰데 말입니다.)  JPG 파일이면 Image 컴포넌트에서 바로 읽어다 쓸 수 있을텐데 참 난감합니다.

그럼 방법이 없느냐? 아닙니다.
어떤 멋진 분께서 BMPDecoder 를 만들어놓으셨네요! :) 이미 FlexComponent 카페에서도 공유되었던 내용입니다.


위의 블로그에 들어가보시면 간단한 사용법에 대해서 나오고 BMPDecoder 라이브러리도 보입니다. 다만 BMPDecoder.as 파일이 다운로드가 안되네요. BMPDecoder.as 파일은 '삶의 향기'라는 블로그에  간단한 예제와 함께 업로드 되어 있으니 다운받아 사용하시면 되겠습니다.

간단하게 FP10 에서 추가된 FileReference의 load() 메소드를 이용해, BMP파일을 불러다  Image 컴포넌트에 넣는 예제를 만들어봤습니다.  예제 구성은 위에서 소개해드린 '삶의 향기' 블로그에 소개된 코드를 이용했습니다.


BMPDecoder.as 보기


BMP 파일을 선택하시면  Image 컴포넌트에 깔끔하게 출력되는 것을 보실 수 있습니다.

하지만 다음과 같은 버그가 존재합니다.
170픽셀 16bit BMP

170픽셀 16bit BMP

171픽셀 16bit BMP

171픽셀 16bit BMP 파일


위의 이미지에서 볼수 있는 것 처럼 BMP을 로드했을 때 이미지가 뒤틀려버리는 버그가 존재합니다.
왜 그럴까 한참을 고민했는데, 저희 팀장님이 힌트를 주시더군요. '윈도우어플에서도 비트맵 크기가 홀수일 경우 이미지가 저렇게 깨진다'고 말이죠. 실제로 테스트해보니 위와 같이 16bit이고 이미지의 너비가 홀수일 경우 위 처럼 이미지가 뒤틀려버리는 버그가 있습니다. (24bit, 32bit에서는 괜찮더군요)

이 버그에 해결책으로 저는 아래와 같이 decode() 메소드에서 이미지 너비를 결정해주는 로직 밑에 너비가 홀수일경우 강제로 1픽셀 늘리는 방법을 사용했습니다. 더 좋은 방법이 있을 것 같은데, 아시는 분은 알려주세요 :)


그럼 좋은 하루되세요!


예제파일 다운로드 :

신고
Creative Commons License
Creative Commons License
Favicon of http://hangunsworld.com BlogIcon Han Sanghun | 2009.06.20 08:25 신고 | PERMALINK | EDIT/DEL | REPLY
잘 뒤져보면 자주 쓰이는 파일 포멧들에 대한 인코더/디코더들이 많이 공개되어 있더라고요. 정말 좋은 세상인것 같아요. ^^
그렇지만 플래시 플레이어 성능의 한계상, 용량이 좀 큰 파일인 경우 스크립트 실행이 멈추는 문제가 종종 있더군요.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.20 14:25 신고 | PERMALINK | EDIT/DEL
정말 고마우신 분들이 많으십니다 ;)
예전에 JPEG의 EXIF 정보 읽어보려서 스펙뒤지고 했는데, 이미 만들어서 공개해두신 분이 계시더라는;;;;
용량 큰건 안습이죠... ㅜㅜ
Favicon of http://siking.tistory.com BlogIcon 윤연식 | 2009.06.23 20:53 신고 | PERMALINK | EDIT/DEL | REPLY
아하.. 그렇군요... 잘보고 갑니다 감사합니다...^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.24 11:24 신고 | PERMALINK | EDIT/DEL
생유~
차상욱 | 2009.06.24 11:43 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 자료 감사합니다.
그런데 제가 flex3 빌더를 사용하는데 여기서는 FileReference 안에 load() 메소드가 지원되지 않더군요
혹시 위에 빌더가 flex 2인가요??
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.24 15:02 신고 | PERMALINK | EDIT/DEL
저는 Builder 3를 사용하고 있습니다.
기본적으로 Builder 3에서는 FP 9가 기본인데요, 위에 설명에서 보시면 알 수 있듯, Flash Player 10 에서 load() 메소드가 추가되었습니다.
FP10 의 API를 이용하기 위해서는 프로젝트 생성 후 프로젝트 속성에서 Flex Compiler 선택해보시면 하단에 HTML wrapper 가 있습니다. 거기에 요구되는 Flash Player 버전을 10.0.0 이상을 맞춰주시면 정상적으로 실행됩니다. ;)
나그네 | 2010.01.12 18:34 신고 | PERMALINK | EDIT/DEL | REPLY
1픽셀 늘리는 패치를 사용할 경우 에러가 나는 경우가 있습니다. 24비트 bmp 디코드 시에 decode24BitBMP() 메소드에서 "파일의 끝입니다" IOError 가 발생하더군요.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2010.03.04 08:36 신고 | PERMALINK | EDIT/DEL
1픽셀 늘리게 수정한 뒤에 테스트는 못 해봤는데 ^^;;;
감사합니다! ^^
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2010.01.29 19:00 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 정보야~~~~
Favicon of http://stemp.tistory.com BlogIcon 문정환 | 2010.03.03 12:51 신고 | PERMALINK | EDIT/DEL | REPLY
좋은정보가 많이 있네요 ^^
많은 도움이 될것같습니다 좋은정보 감사드립니다^^
| 2012.09.11 11:34 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.04.12 17:49
안녕하세요? 검쉰입니다.
Flash Platform 한글문제 공동대응팀 해오름 모임을 무사히 잘 치뤘습니다.



사용자 삽입 이미지

온오프믹스로 103명 참가신청 해주셨고, 그중 80분 정도가 참석해주셨습니다.
토요일에 하는 모임이라 출석률이 저조할 것이라 생각을 했는데, 예상 밖의 많은 참여가 고마웠습니다. ;)

아쉽게 참석을 못하신 분들을 위해 사진으로 나마 행사때의 모습을 전달해드리려고 합니다.

0. 행사 준비중


1. 한글 대응팀 소개 및 기조연설 (이희덕)


2. Flash Platform 게임개발 노하우 (이정웅)


3. FlarToolKit으로 구현하는 증강 현실 (옥상훈)


4. Flash Platform 한글문제 (이희덕)


5. 토론의 장 (대응팀 전원)


6. Flex Skin for Developers (김학영)


7. Creating Visual Experiences with Flex (이준하)



8. Q&A 및 폐회


9. 경품 추첨




행사를 마치고 뒷풀이 하러가기전 단체사진!! 모두들 수고 하셨습니다 ;)



많이 참석해 주셔서 감사드립니다.

넓은 강의실 지원해주신 숭실대학교 측에 감사드리고, (캠퍼스가 참 이쁘더군요. 숭실대에서 특강 한번 해야되는건가요? ^^)
도서 후원해주신 월간 마이크로소프트웨어위키북스 측에 다시 한번 감사드립니다. ;)

다들 좋은 시간이었다고 해주셔서 감사했습니다.

발표자료는 저희 팀 블로그인 http://flashteam.kr/ 로 공유될 예정입니다.

다음에 더 좋은 자리로 좋은 시간 가질 수 있었으면 좋겠네요. :)

신고
Creative Commons License
Creative Commons License
이전 댓글 더보기
차차 | 2009.04.13 09:44 신고 | PERMALINK | EDIT/DEL | REPLY
오라버니 간만에 봐서 반가웠죠?ㅋㅋ
많은분들 뵐 수 있는 즐거운 자리였어요^ㅁ^
뒷풀이 참석 못해서 아쉽네여;ㅅ;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 10:21 신고 | PERMALINK | EDIT/DEL
차차는 경품으로 마소도 받고 좋았겠네 ㅋ
다음에 또 봐~ ;)
Favicon of http://randorno.tistory.com BlogIcon 란도르노 | 2009.04.13 09:57 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 잘 들어가셨나요?(형님이라고 부른다고 했던것 같지만 ㄷㄷ)
저도 블랙키즈랑 좀 더 마시고 집으로(블랙키즈 집이라는...)
다음에 회사 놀러오실때 연락하세요~ ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 10:22 신고 | PERMALINK | EDIT/DEL
OK!! 담에 봅시다!
Favicon of http://dgluna.tistory.com BlogIcon 루나군 | 2009.04.13 10:33 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 세미나에 초대해 주셔서 감사했어용~ ^-^
담에 술한잔 해요~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 18:27 신고 | PERMALINK | EDIT/DEL
담에 한번 다들 모이자고~ ㅎㅎ
realbj | 2009.04.13 11:41 신고 | PERMALINK | EDIT/DEL | REPLY
전 아는 사람도 없고 ㅠㅠ
선배가 추천해 줘서 무작정 참석했었습니다.
솔직히 Adobe나 RIA에 아는 내용이 아무것도 없이
참석을 했는데 나름 그쪽 분야에 대한 이해도를 한껏 높일 수가 있어서
너무 좋았습니다.
뒷풀이는 참석하지는 않았지만 다음 모임에 다시 참석해서
안면텄으면 좋겠습니다
저는 9번 사진 좌측 상단에 머리 단발(?)로 보이고
뭔가 고민하고 있는 표정을 짖고 있는 사람입니다. ^^:;
근데 .................. 저 상품 못 타서 너무 아쉬없음 ^^:
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 18:27 신고 | PERMALINK | EDIT/DEL
아는 사람 없으면 이렇게 참가하셔서 알게되면 되는거죠 :)
Favicon of http://rduk.tistory.com BlogIcon Kduks | 2009.04.13 11:45 신고 | PERMALINK | EDIT/DEL | REPLY
좋은거 많이 배우고 듣고 왔습니다.
앞으로 시간되는한 많이 참여하고 싶네요^^
여친이 보채는바람에 추첨까지만하고 갔지만..
다음엔 뒷풀이도 한번 ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 18:28 신고 | PERMALINK | EDIT/DEL
다음에는 뒷풀이까지 함께 하시죠 ;)
Favicon of http://www.wzd.com/mydreamdba BlogIcon 비만짱구 | 2009.04.13 11:50 신고 | PERMALINK | EDIT/DEL | REPLY
저도 아는 사람 없는데. 무작정 참석했었어요. ㅋ
뒷풀이때 몇분 알게 됐는데... 다음에 뒷풀이 꼭 오세요. 좋더라고요.
2차때 중간에 갔지만, 잘 노셨나요????
다음모임있으면 알려주세요.
참고로 전 2차때 검쉰님 좌측에 앉았던 사람입니다. ㅋ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 18:29 신고 | PERMALINK | EDIT/DEL
다음에 또 뵙겠습니다~ ;)
Favicon of http://suritam9.pe.kr BlogIcon 박영식 | 2009.04.13 12:42 신고 | PERMALINK | EDIT/DEL | REPLY
감사합니다. ㅋㅋ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 18:29 신고 | PERMALINK | EDIT/DEL
마음의 소리는 재미있으신가요? ㅎㅎ
Favicon of http://improgrammer.com BlogIcon 케이 | 2009.04.13 20:38 신고 | PERMALINK | EDIT/DEL | REPLY
반가웠어요. 근데 아직도 믿기지 않는게 있습니다. 그게 사실인가요? 야꼬형이랑 동갑이라는게... 흐미;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.13 20:46 신고 | PERMALINK | EDIT/DEL
제가 더 들어보이나요? ㅜ_ㅜ 굴욕인데요 ㅋㅋㅋ
Favicon of http://wooyaggo.tistory.com BlogIcon 우야꼬  | 2009.04.13 23:01 신고 | PERMALINK | EDIT/DEL
구...굴욕...이라니!!
Favicon of http://hangunsworld.com BlogIcon Han Sanghun | 2009.04.14 00:59 신고 | PERMALINK | EDIT/DEL | REPLY
일이 있어서 참석하지 못했는데, 이렇게 친절하게 포스팅까지 해주시다니...
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.14 09:42 신고 | PERMALINK | EDIT/DEL
다음에 한번 뵈어요~ ;)
데스티한테 자리 좀 마련하라고 찔렀는데 대답이 없네요 ㅋ
Favicon of http://okgosu.tistory.com BlogIcon okgosu | 2009.04.14 03:31 신고 | PERMALINK | EDIT/DEL | REPLY
그날 제대로 얘기도 못나누고 갔네요....
언제 날 한번 잡죠...한잔 하게요...


with okgosu (-..-)a
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.14 09:43 신고 | PERMALINK | EDIT/DEL
넵. 조만간 자리를 마련해서 ;)
연락드리겠습니다!
Favicon of http://okgosu.tistory.com BlogIcon okgosu | 2009.04.14 13:35 신고 | PERMALINK | EDIT/DEL
아넵...기대할께요^^
Favicon of http://adnaru.tistory.com BlogIcon 희희덕 | 2009.04.16 01:14 신고 | PERMALINK | EDIT/DEL | REPLY
쉰님은 그날 동갑친구 두명을 만드시고
든든하고 즐거운 하루였겠어요 ㅠ_ㅠ.. 부럽당..
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.16 14:17 신고 | PERMALINK | EDIT/DEL
친구 2명 생겼습니다. ㅋㅋ 부럽죠? ㅋ
Favicon of http://lazyartist.tistory.com BlogIcon lazyartist | 2009.04.16 04:45 신고 | PERMALINK | EDIT/DEL | REPLY
유익하고 재미있는 시간이었어요~
다음 세미나도 기대되네요~
저도 아는 사람 없이 혼자갔는데...
블로그에서 본 검쉰님을 알아보고 위안이 좀 됐었죠~ ^^;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.16 14:17 신고 | PERMALINK | EDIT/DEL
알아봐주셔서 감사합니다 :)
세미나 같은 건 챙겨서 다녀야 도움도 많이 되고 그렇더라고요 ㅎ
Favicon of http://www.grotesq.com BlogIcon Mr.Unknown | 2009.04.16 10:48 신고 | PERMALINK | EDIT/DEL | REPLY
국방부의 언노운이 와쪄염. 뿌우 >_<
(...)
미, 미안해요 형 (...)
자주 놀러올게요. 음하하
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.16 14:19 신고 | PERMALINK | EDIT/DEL
솔직히 난 국방부 프로젝트 쪽 사람인 줄 알았다는.. ㅋ
Favicon of http://rainlethe.tistory.com BlogIcon 레인레테 | 2009.04.16 14:02 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 검쉰님.
발표 잘 들었습니다. ^^

부탁이 잇는데요.

세미나 중간에 말씀해 주신 '위자드 닷컴의 액션스크립트 rss 리스트 ' 좀 다시 말씀해 주실 수 있나요? ^^;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.16 14:19 신고 | PERMALINK | EDIT/DEL
http://www.wzd.com/warkyman.myid.net
입니다 ;)
『RJ』철현 | 2009.04.16 14:12 신고 | PERMALINK | EDIT/DEL | REPLY
자기야~

아힝~♡
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.16 14:19 신고 | PERMALINK | EDIT/DEL
살만한가베.. ㅋㅋ 덧글도 달고 ㅋ
김용일 | 2009.04.16 14:37 신고 | PERMALINK | EDIT/DEL | REPLY
정말 많은 도움이 된 세미나 였습니다.
이런 세미나를 추진해주신 분들께 감사의말씀을 드리고 싶습니다.
뒤풀이 때도 많은 분들과 이야기 잘 나누었고요. 앞으로 이모임의 활동에 적극적으로 참여를 하고 싶습니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.17 02:03 신고 | PERMALINK | EDIT/DEL
도움이 많이 되셨다니 고맙습니다 ;)
다음에 또 좋은 자리로 뵙겠습니다 ;)
Favicon of http://www.jinhokim.com BlogIcon 찌노 | 2009.04.16 15:52 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 시간이었네요~
하필 교육시간과 겹쳐서 참석도 못하고.. 그저 아쉬운 마음뿐이네요~ ㅠ.ㅠ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.17 02:03 신고 | PERMALINK | EDIT/DEL
교육!!! +_+ ㅋ
메타콰이어 | 2009.04.16 20:16 신고 | PERMALINK | EDIT/DEL | REPLY
사진 잘 봤습니다!! 크크
다음에 또 뵈면 좋을꺼 같아요~ :)
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.17 02:03 신고 | PERMALINK | EDIT/DEL
다음에 또 뵈어요~ ;)
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.04.27 22:13 신고 | PERMALINK | EDIT/DEL | REPLY
형님. 오랜만에 들르는 바람에 이제서야 봐버렸어요
참석못해 몸둘바 모르는 한 영혼, 모른척하지 말아주세요.
박스농사 | 2009.04.30 15:34 신고 | PERMALINK | EDIT/DEL | REPLY
인상이 왜그럼?
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.04.01 21:45
안녕하세요? 검쉰입니다.

제가 Flex를 처음 접하고, '이거 정말 멋지다!' 라고 생각을 했습니다. 그 뒤로 이어지는 생각은 '이거 한글 입력은 왜 이리 느려?'. 몇 년이 지난 아직도 한글 입력은 느리기만 한데, 언제 수정될지는 아무도 모른다죠. 비 영어권의 설움이라고 할까요? 과학적이고 독창적인 자랑스런 한글을 쓰는게 죄(?)가 되는 이상한 상황.

이런 상황을 헤쳐나가고자 지난 1월 이희덕님의 제안으로 'Flash Platform 한글문제 공동대응팀'이 생겼습니다. (짝짝짝)
그간 오프모임을 진행하면서 팀원간 의견도 나누고, 최근 Flex SDK 3.2 + FP 10 에서의 한글 입력문제가 해결되는 기쁨을 맛보기도 하였습니다.

사용자 삽입 이미지

이제 다른 많은 Flash Platform 개발자 분들과 만나, 한글문제와 개발 노하우를 이야기해보고자 합니다.

 *행사 개요

     날짜 : 2009년 4월 11일 (토)
     장소 : 숭실대학교 벤처관 3층 대강의실
     시간 : 오후 2시 ~ 6시
     주최 : Flash Platform 한글문제 공동대응팀
     주관 : 숭실대학교 글로벌미디어학부
     후원
Agenda

     14:00 ~ 14:10 : 학교 시설 사용과 관련된 안내 (이희덕)
     14:10 ~ 14:30 : 한글 대응팀 소개 및 기조연설 (이희덕)
     14:30 ~ 15:00 : Flash Platform 게임개발 노하우 (이정웅)
     15:00 ~ 15:30 : FlarToolKit으로 구현하는 증강 현실 (옥상훈)
     15:30 ~ 16:00 : Flash Platform 한글문제 (이희덕)
     16:00 ~ 16:40 : 토론의 장 (대응팀 전원)
     16:40 ~ 17:20 : 잡부 Flex 개발자를 위한 Flex 스킨 (김학영)
     17:20 ~ 17:50 : Creating Visual Experiences with Flex (이준하)
     17:50 ~ 18:00 : 정리 및 폐회




행사 참석 신청 및 자세한 소개는 온오프믹스 를 통해 신청해주시면 감사하겠습니다. ;)
많은 참석 부탁드립니다 !!!
함께해요~ ㅎㅎ


저작자 표시 비영리
신고
Creative Commons License
Creative Commons License
차차 | 2009.04.02 10:17 신고 | PERMALINK | EDIT/DEL | REPLY
ㅋㅋ이번달은 행사가 많아서..
담주에 스케쥴비면 참석할께요~ 기대되네여^ㅁ^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.02 18:08 신고 | PERMALINK | EDIT/DEL
꼭 와~ ;)
Favicon of http://okgosu.tistory.com BlogIcon okgosu | 2009.04.02 14:10 신고 | PERMALINK | EDIT/DEL | REPLY
오늘 okgosu.net 전체 메일 날렸어요~

11일날 뵈요~

okgosu (-..-)a
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.02 18:08 신고 | PERMALINK | EDIT/DEL
메일 잘 봤습니다 ;)
11일날 뵙겠습니다. ㅎㅎ
Favicon of http://hhjae84.tistory.com BlogIcon 모지씨 | 2009.04.02 23:20 신고 | PERMALINK | EDIT/DEL | REPLY
저도 11일에 뵈요~ 헤헤
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.03 10:31 신고 | PERMALINK | EDIT/DEL
11일에 봐~ ;)
Favicon of http://inthewhite.net BlogIcon july.fool | 2009.04.05 01:38 신고 | PERMALINK | EDIT/DEL | REPLY
기대 기대 중입니다 :)
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.05 18:40 신고 | PERMALINK | EDIT/DEL
제 발표는 기대하지 마세요 ㅎㅎㅎ
Favicon of http://rainlethe.tistory.com BlogIcon 레인레테 | 2009.04.06 10:49 신고 | PERMALINK | EDIT/DEL | REPLY
저도 구경갑니다요 ^^

잘부탁드려용
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.06 12:44 신고 | PERMALINK | EDIT/DEL
네~ 11일날 뵙겠습니다. ;)
아는 척 해주세요 :)
Favicon of http://wooyaggo.tistory.com BlogIcon 우야꼬  | 2009.04.06 18:46 신고 | PERMALINK | EDIT/DEL | REPLY
토요일날 뵈요~~
뒤풀이는 한시간정도 있다 일어나야되지만 이번에 뵐 수 잇겠네용^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.06 23:15 신고 | PERMALINK | EDIT/DEL
드디어 얼굴 뵙겠네요~ ;)
BlogIcon actionshin | 2009.04.07 23:16 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 안녕하세요. 모임 신청을 하려고 하는데 온오프가 신청이 되지 않네요. 거기 신청이 되지 않아도 방청가능한가요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.08 00:04 신고 | PERMALINK | EDIT/DEL
행사진행을 맡고 있는 희덕군에게 문의하니
성함 / 소속 / 뒷풀이 참석여부를 알려주시면 추가하겠다고 하네요 ^^

희덕군 블로그 http://adnaru.com/ 에 비밀글로 적어주시면 될꺼 같습니다. ;)
11일날 뵐께요!
Favicon of http://egg.pe.kr BlogIcon egg | 2009.04.07 23:26 신고 | PERMALINK | EDIT/DEL | REPLY
꼭 비영어권의 설움을 해결해주시고
한글의 독창성을 널리 알려주세요. ㅎㅎㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.08 00:04 신고 | PERMALINK | EDIT/DEL
독창성까지 널리 알릴 실력은 없어서... ㅎㄷㄷ
Favicon of http://cafe.naver.com/codestudy BlogIcon 이정칠 | 2009.04.08 09:57 신고 | PERMALINK | EDIT/DEL | REPLY
그날 가서 봅시다 .. 간만에 얼굴 보겠구만 ㅋㅋ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.08 15:15 신고 | PERMALINK | EDIT/DEL
네~ ㅎㅎ 오랫만에 얼굴 뵙겠네요 형님 ㅎ
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.04.08 10:13 신고 | PERMALINK | EDIT/DEL | REPLY
3시쯤에 연습이있어서 중간에 나가야하기땜시 신청하기가 거시기해요
이건 희덕님에게 말해야하나... ㅡㅡ;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.08 15:15 신고 | PERMALINK | EDIT/DEL
신청하고 중간에 나가면 되지 뭐 ㅋㅋ
| 2009.04.08 17:06 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.08 18:25 신고 | PERMALINK | EDIT/DEL
네~ 안녕하세요. 란도르노님 ㅎ
모임때 인사 나누어요~ ;)
Favicon of http://inthewhite.net BlogIcon july.fool | 2009.04.11 17:10 신고 | PERMALINK | EDIT/DEL | REPLY
발표 잘 들었습니다~~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.12 16:38 신고 | PERMALINK | EDIT/DEL
감사합니다. ;)
변상윤 | 2009.04.11 21:19 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하십니까? 오늘 마지막에 Flex에서 Textarea 내용을 카피해서 메모장에 붙여 넣을 경우 엔터가 전부 없어지는 것 질문했던 사람입니다. 오자마자 검쉰님의 블로그를 찾아보니 내용이 있네요^^ 정말 감사드립니다. 한달간의 고민을 해결해 주신셔^^ 앞으로 자주 들리겠습니다
변상윤 | 2009.04.11 22:26 신고 | PERMALINK | EDIT/DEL | REPLY
추가로 질문 하나 있습니다. 저희 회사에서 글입력을 나모 엑티브스퀘어를 사용하는데 ActiveX라서 IFrame을 사용해서 띠우다 보니 문제가 있습니다. 혹시 Flex로 그림도 바로 첨부하는 웹에디터 같은 것을 만들어 본적이나 본 것이 있나요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.12 16:40 신고 | PERMALINK | EDIT/DEL
기존에 에디터는 한계가 있었습니다. 그래서 FTE 라는 녀석이 나왔는데, 기존 Flex SDK 3.2 + FP10 에서의 한글입력 버그때문에 개발을 전혀 못했네요. =ㅁ=;;
이제 한번 해보려는 중입니다.

FTE 예제를 찾아보시면 딱 하고 감이 올 것이라 생각합니다. ;)
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
2009.03.27 15:36
안녕하세요? 검쉰입니다. 오랫만에 블로그 포스트로 인사드립니다.
그동안 티스토리에서 문제가 되었던 Flash Player 10에서 swf 로드가 안되던 문제가 해결이 되었네요. ;) 기존의 제 포스트들도 정상으로 보이고요. 이사하려다가 그 것또한 귀차니즘에 의해 좌절. ^ㅂ^; 아무튼 다시 오랫만에 글로 인사드려요. ;^)

흔히 자주 쓰시는 Flash로 만든 네비케이터 바 에서 메뉴정보를 외부의 XML 로 받아오는 경우와 같이 외부의 데이터를 읽어오는 과정에서 한글이 깨지는 경험을 한번쯤은 하셨을 겁니다. 이런 경우 커뮤니티에서 검색해보시면 System.useCodePage = true; 를 넣어라. 라는  답변을 많이 볼 수 있습니다. 심지여 이 것을 "한글 깨짐 방지 코드"라고 부르는 경우도 있더군요. 옛 속담에 '선무당이 사람잡는다'라는 이야기가 있습니다. 정확하게 이해하지 못하고 쓰게 되면 뒷일 감당하기 힘들게 되는 법!!. 왜 System.useCodePage = true; 를 넣으면 한글이 안꺠지는지 알아보도록 하겠습니다.

'EUC-KR' 이라고 많이 보셨을 겁니다. 한글을 정의한 캐릭터 셋(charset)입니다. 보통 한글 윈도우에서 제작한 파일은 'EUC-KR' 캐릭터 셋으로 저장되는 경우가 많습니다. 이 때 캐릭터 셋이란 글자들의 집합을 정의한 것이라고 생각하시면 됩니다. (보다 자세한 건 위키백과의 설명을 참조하시길 바랍니다.)
이러한 캐릭터 셋이 다르게 되어 있는 데이터를 읽어오게 되면 한글이 깨지게 되는데요, Flash 내부에서는 유니코드(UTF-8)를 기본으로 사용하기 때문입니다. 'EUC-KR'로 제작된 파일을 'UTF-8'로 읽었으니 당연히 서로 다른 캐릭터 셋을 사용하게 되므로 한글이 깨지게 되는 겁니다. 이러한 경우에 바로 System.useCodePage = true; 를 사용하면 한글이 깨어지지 않는데, 그 이유는 LiveDocs 에도 잘 나와있습니다.

useCodePage 속성  
useCodePage:Boolean  [읽기/쓰기]
언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9

Flash Player에서 외부 텍스트 파일을 해석하는 데 사용할 코드 페이지를 지정하는 부울 값입니다. 이 속성을 false로 설정하면 외부 텍스트 파일이 유니코드로 해석됩니다. 이러한 파일은 저장할 때 유니코드로 인코딩되어야 합니다. 이 속성을 true로 설정하면 외부 텍스트 파일이 Flash Player가 실행되는 운영 체제의 일반 코드 페이지로 해석됩니다. useCodePage의 기본값은 false입니다.

flash.display.Loader.load(), flash.net.URLLoader, flash.net.URLStream 또는 XML 클래스를 사용하여 외부 파일로 로드하는 텍스트를 Flash Player에서 유니코드로 인식하려면 이러한 파일을 유니코드로 저장해야 합니다. 외부 파일을 유니코드로 인코딩하려면 Windows 2000의 메모장과 같이 유니코드를 지원하는 응용 프로그램에서 파일을 저장해야 합니다.

유니코드로 인코딩되지 않은 외부 텍스트 파일을 로드하려면 useCodePagetrue로 설정합니다. 이렇게 하려면 데이터를 로드하는 SWF 파일의 첫 번째 프레임에 다음 코드를 첫 코드 행으로 추가합니다.

System.useCodePage = true;

이 코드를 추가하면 외부 텍스트가 Flash Player가 실행되고 있는 운영 체제의 일반 코드 페이지로 해석됩니다. 영문 Windows 운영 체제의 경우 대개 CP1252이고 한국어 운영 체제의 경우 EUC-KR입니다. 만약 useCodePagetrue로 설정하면 Flash Player 6 이상 버전은 Flash Player 5와 같은 방법으로 텍스트를 처리합니다. Flash Player 5에서는 모든 텍스트를 Flash Player 실행 운영 체제의 일반 코드 페이지를 사용하는 것으로 간주하고 처리했습니다.

useCodePagetrue로 설정하는 경우 플레이어가 실행되는 운영 체제의 일반 코드 페이지에 외부 텍스트 파일에 사용되는 문자가 포함되어 있어야 텍스트가 표시됩니다. 예를 들어 중국어 문자가 포함된 외부 텍스트 파일을 로드하는 경우 CP1252 코드 페이지에는 중국어 문자가 없으므로 이 코드 페이지를 사용하는 시스템에서 중국어 문자가 표시되지 않습니다.

모든 플랫폼에서 SWF 파일에 사용된 외부 텍스트 파일을 볼 수 있게 하려면 모든 외부 텍스트 파일을 유니코드로 인코딩하고 useCodePagefalse로 설정된 상태로 두어야 합니다. 이렇게 하면 Flash Player 6 이상에서 텍스트가 유니코드로 해석됩니다.


LiveDocs 에도 나와 있는 것 처럼 useCodePage 를 true로 설정하면 유니코드가 아닌 운영체제의 codepage로 해석이 되는 것이죠. 한글 윈도우의 기본 codePage는 'EUC-KR(51949)' 입니다. 그래서 외부의 'EUC-KR'로 되어있는 문서가 깨지지 않고 읽히게 되는 것입니다.

더 이상의 문제가 없어보입니다만,  실제 그렇지 않습니다. 해당 swf 를 로드하는 사용자가 외국어 OS를 사용하고 있다면 어떨까요? 열심히 만든 어플을 정식으로 런칭했는데, 그걸 외국의 한국인이 본다면???

이론적으로 보면 'EUC-KR'로 되어 있는 문서를 해당 OS의 codePage로 읽게 될텐데, 다른 언어의 OS는 codePage가 설마 'EUC-KR(51949)'일까요?? 위의 livedocs의 설명에도 나와 있듯, 다른 나라의 OS는 한국어 OS와 codePage가 다르다는 군요. (다른 나라 언어의 캐릭터 셋에 대해서 궁금하시다면 여기에서 확인해보시면 되겠습니다.)

실제로 그런지 확인을 위해서 아래와 같은 간단한 swf 파일을 만들어 봤습니다. 소스코드는 다음과 같습니다.
Flex 로 만든 App.

로드한 XML 파일



동일한 XML 파일을 'UTF-8', 'EUC-KR'로 각각 저장해서 useCodePage를 각각 false, true 로 설정해 영어, 일어 Windows 에서 IE로 읽어봤습니다.
클릭하셔서 확인해보세요.
Windows XP 영문판에서 swf 로드

Windows XP 영문판에서 swf 로드

Windows XP 일어판에서 swf 로드

Windows XP 일어판에서 swf 로드



UTF-8로 되어있는 파일은 어떤 OS든지 간에 잘 로드가 되고 있고, 'EUC-KR'로 되어있는 것을 System.useCodePage = true; 로 설정한 것은 한글이 여지없이 깨져보이는 것을 확인 할 수 있습니다. 외국에 서비스 할 생각이 없는 어플이라 하더라도, 기본적으로 'UTF-8'로 파일들을 저장해 놓으시면 한글문제를 잘 피해가실 수 있다고 생각합니다. 단순이 파일만이 아니라, HTTPService로 load 하는 데이터 또한 'UTF-8' 로 제작되어야 하겠죠?

하지만 할 수 없이 'EUC-KR'을 사용해야 할 때가 있습니다.네이버 카페의 경우 'EUC-KR'로 되어 있는데요, 이 것 때문에 useCodePage를 true로 설정할 수 는 없는 것 아니겠습니까? 이런 고민을 제가 존경하는 원강민님께서 블로그에 이미 포스팅 하신 적이 있습니다.
System.useCodePage 대신 이렇게.. 이 포스트를 참고 하시면 좋겠습니다.

간만에 글을 썼더니 꽤나 길어졌네요 :-) 다들 좋은 주말 되시길!
저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Favicon of http://okgosu.tistory.com BlogIcon okgosu | 2009.03.27 17:59 신고 | PERMALINK | EDIT/DEL | REPLY
컴백 하셨네요...
잘 보고 갑니다~

with okgosu (-..-)a 저도 굽신 굽신~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.03.29 22:19 신고 | PERMALINK | EDIT/DEL
방문 감사합니다 ;)
Favicon of http://jidolstar.com/blog BlogIcon 지돌스타 | 2009.03.28 13:03 신고 | PERMALINK | EDIT/DEL | REPLY
좋아요~~~ 블로그의 세계로 돌아오신것을 환영합니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.03.29 22:20 신고 | PERMALINK | EDIT/DEL
다음 포스팅은 언제일 줄 모른다는... ㅎㅎ
박스농사 | 2009.03.30 09:39 신고 | PERMALINK | EDIT/DEL | REPLY
영어는 왜 다 잘나올까요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.03.30 09:43 신고 | PERMALINK | EDIT/DEL
비 영어권의 슬픔. =ㅁ=
Favicon of http://zommoc.tistory.com BlogIcon 좀모씨 | 2009.03.30 11:52 신고 | PERMALINK | EDIT/DEL | REPLY
많은 도움이 되었습니다^^

.....지식인 질문자 채택글 같은;;;;;;
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.03.31 09:46 신고 | PERMALINK | EDIT/DEL
채택해주셔서 감사합니다?! ;)
Favicon of http://7zelkova.tistory.com BlogIcon 성주 | 2009.03.31 10:05 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 글 잘 보고 갑니다.
저도 System.useCodePage = true; 로 해 놓은게 있는데 수정해야겠네요
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.03.31 22:06 신고 | PERMALINK | EDIT/DEL
방문 감사감사 ;)
Favicon of http://lovedev.tistory.com BlogIcon lovedev | 2009.03.31 20:47 신고 | PERMALINK | EDIT/DEL | REPLY
^^ 다시 돌아 오셨군요 ^^)/ 화이팅
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.03.31 22:06 신고 | PERMALINK | EDIT/DEL
열심히 달려 보겠습니다 ;)
모지씨 | 2009.04.01 09:34 신고 | PERMALINK | EDIT/DEL | REPLY
좋은글 잘보고 갑니다 : )
이름 입력하라는곳 없어서 한참 찾았는데... 새로고침하니까 나오는군요 :-(
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.01 16:03 신고 | PERMALINK | EDIT/DEL
로그인 하면 좀 편함 ㅋ
Favicon of http://zommoc.tistory.com BlogIcon 좀모씨 | 2009.04.03 17:49 신고 | PERMALINK | EDIT/DEL
그럴 때 Q 를 눌러보시면 새로운 세계가~
Favicon of http://hangunsworld.com BlogIcon Han Sanghun | 2009.04.02 18:02 신고 | PERMALINK | EDIT/DEL | REPLY
명쾌하게 정리해 주셨네요 ^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.02 18:10 신고 | PERMALINK | EDIT/DEL
방문 감사드려요~ ;)
데스티 좀 잘 부탁드립니다? ㅋ
퍼플린 | 2009.04.10 11:02 신고 | PERMALINK | EDIT/DEL | REPLY
굿잡~
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.10 18:47 신고 | PERMALINK | EDIT/DEL
오예~ ㅋ
Favicon of http://me2day.pe.kr BlogIcon 이태호 | 2009.05.27 13:49 신고 | PERMALINK | EDIT/DEL | REPLY
검쉰님 오랫만에 들어와봤는데
이런 피같은 정보가. ^^
저도 이런 문제가 있어 어찌어찌 그 원인이란거 알고 해결은 했는데 내막이 이러하군요.
잘봤습니다.^^
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.02 10:13 신고 | PERMALINK | EDIT/DEL
언제 얼굴 한번 봐야죠~ ㅎㅎ
Favicon of http://www.ddongkang.com BlogIcon 동강 | 2009.06.02 13:16 신고 | PERMALINK | EDIT/DEL | REPLY
딱 찾는 정보 였어요.ㅋㅋ 잘 보았습니다.ㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.06.15 18:31 신고 | PERMALINK | EDIT/DEL
감사합니다 ;) ㅎㅎ
Favicon of http://stemp.tistory.com BlogIcon 문정환 | 2010.02.17 17:06 신고 | PERMALINK | EDIT/DEL | REPLY
System.useCodePage = true;에 대해서 찾아보다가 좋은글 읽고 갑니다 ~
유익한글 감사드립니다.
태우 | 2010.03.20 07:48 신고 | PERMALINK | EDIT/DEL | REPLY
감사합니다.
Favicon of http://blog.naver.com/yell301 BlogIcon 기절이 | 2010.09.11 13:02 신고 | PERMALINK | EDIT/DEL | REPLY
명쾌한 좋은 정보 감사합니다~도움 많이 되었습니다~링크 담아가겠습니다~감사합니다~^^
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
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 next