'namespace'에 해당되는 글 1건
2008.06.21 09:57
Flex에서 팝업용도로 많이 쓰는 TitleWindow이라는 클래스가 있습니다.
TitleWindow 의 구현코드를 보신 분은 아시겠지만 TitleWindow 에는 그렇게 많은 코드가 있지는 않습니다. (오히려 뭐가 이렇게 없어! 할 정도) 저도 상당히 의아했습니다. 주석을 빼면 정말 몇줄 안되는 코드였기 떄문이죠.

그 이유는 TitleWindow는 Panel을 상속해서 만들었는데 실제 TitleWindow에서 필요한 닫기버튼은 이미 Panel에서 구현되어 있고 단지 보이지만 않는 상태이기 때문입니다. TitleWindow에서는 showCloseButton 라는 get/set 메소드로 닫기 버튼의 보여지는 유무만 설정하면 됩니다.

그런데 여기서 좀 재미있는 부분이 있습니다. Panel에서 닫기 버튼이 구현되어 있다면 Panel을 상속받으면 그 닫기버튼도 사용할 수 있을까요? 그냥은 안됩니다. 왜냐하면 닫기버튼이 보이거나 안보이도록 설정하는 변수인 _showCloseButton이 mx_internal 로 선언되어 있기 때문입니다.



그럼 이걸 어떻게 사용하면 될까요? TitleWindow의 showCloseButton 라는 get/set 메소드 를 보면 해답을 찾을 수 있습니다.



showCloseButton 속성의 코드가 좀 특이하죠?
TitleWindow 의 코드 상단에
use namespace mx_internal;
이라고 작성되어 있습니다. mx_internal 이라는 namespace를 사용하겠다는 것이지요. 이렇게 설정되면 showColoseButton 속성과 같이 mx_internal로 선언된 _showCloseButtion 변수에 접근하시면 됩니다.
return mx_internal::_showCloseButton;      //이렇게 해도 되고 또는,
return _showCloseButton;                       //이렇게만 해도 되긴 합니다
그렇다면 TitleWindow 는 Panel을 상속받았으니 그렇다 치고, 외부에서 Panel 객체의 _showCloseButton 변수를 바로 접근할 수는 없을까요? 안된다고요? 그럼 안되는데요! 안되면 제가 이 글을 쓸 이유가 없어집니다. ;) 바로 아래와 같이 가능합니다.


그래도 화면에 보이는 예제가 하나 필요하겠죠? 이번에는 TextArea로 예제를 하나 만들어보겠습니다.
(loveDev 블로그에서 아이디어 얻었습니다)
Flex에서 한글을 입력시에는 버벅이는 문제(천천히 타이핑 되는 문제)가 있었습니다. 이 문제를 해결하기 위해서 frame rate 를 올린다던가 하는 방법을 사용했었는데, Adobe Flex 공식사이트에 블로그에 올라온 글에서 어이없게도(?) TextField 의 alwaysShowSelection 속성을 true로 바꾸어주면 해결된다는 것이었습니다. 왜 그런지는 저도 정확하게는 잘 모르겠고... ^^;

아 무튼 Flex에서 한글 입력을 받는 TextInput, TextArea 등도 내부적으로 TextField를 상속한 UITextField 를 사용하고 있습니다. 그렇다면 이 UITextField 를 받아와야겠습니다만, 이게 또 골치아픕니다. TextArea나 TextInput 은 이 UITextField가 protected로 선언되어 있기때문에 외부에서 접근하는 것이 불가능합니다. 그래서 상속을 받아서 접근하던지, 아니면 여기와 같이 해결을 해야됩니다.

그러나 다행이도 이 TextField를 반환해주는 getTextField()라는 메소드가 존재합니다.


그렇다면 UITextField에 직접 접근하여 텍스트를 입력하려면 getTextField() 메소드를 사용하여야 할텐데요, 위의 코드에서 보셨다시피 mx_internal 로 선언되어있습니다. 이럴때는 위에서 설명드린데로 하면 되겠죠?

이 getTextField를 이용하여 TextArea에 한글입력을 개선한 예제입니다.
아래에 있는 TextArea에만 alwaysShowSelection의 값을  true로 설정을 해주었습니다. 위 아래 TextArea에 한글을 입력해보세요. ;)





유용한 정보 되셨길 바랍니다. ;) (오창훈님 감사합니다. ㅎ)


--- 파폭3에서 예제에 한글 입력이 안되네요.. ㅡㅡ; 왜 이러지;; 티스토리에 swf 업로드 하면 object 태그는 생성되는데 embed 태그가 없네요. 이래서 한글 입력이 안되었군요. ㅡㅡ; wmode 속성이 window 일때는 한글 입력이 됩니다. opaque나 transparent 속성은 한글 입력이 안됨..;
신고
Creative Commons License
Creative Commons License
Favicon of http://lovedev.tistory.com BlogIcon lovedev | 2008.06.21 00:30 신고 | PERMALINK | EDIT/DEL | REPLY
TextArea.alwaysShowSelection = true를 주기 위해서 ^^;;
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.06.21 08:50 신고 | PERMALINK | EDIT/DEL
아.. 생각해보니 그렇네요. ㅎㅎㅎ 예제를 바꿀까나... ㅋ
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.06.21 09:55 신고 | PERMALINK | EDIT/DEL
예제를 바꿨습니다 ㅋ
박스농사 | 2008.06.24 13:27 신고 | PERMALINK | EDIT/DEL | REPLY
센스있는글 감사합니다~~
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.06.24 15:29 신고 | PERMALINK | EDIT/DEL
ㅡㅡa
박스농사 | 2008.06.26 11:37 신고 | PERMALINK | EDIT/DEL | REPLY
좋아해줘도 반응이 시큰둥하네염?
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.06.26 13:14 신고 | PERMALINK | EDIT/DEL
ㅡㅡa
Favicon of http://singah.tistory.com BlogIcon 싱아 | 2008.07.02 10:53 신고 | PERMALINK | EDIT/DEL | REPLY
와 이포스트 소스코드 부분 어떻게 한거야?? 난 캡쳐 한건줄 알았더니 블럭지정 되는거 보니까 그게 또 아니네..

옆에 라인넘버도 나오고...
알려주삼 ~ ㅋㅋ
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.02 17:33 신고 | PERMALINK | EDIT/DEL
열이아빠님 블로그 http://koko8829.tistory.com/305 참고하셈 ㅋ
| 2008.08.21 14:25 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.08.21 23:37 신고 | PERMALINK | EDIT/DEL
아.. 그러네요 ^^;
여태 아무도 몰랐던;;
바로 수정했습니다. ㅎ
Favicon of http://orochi77.egloos.com BlogIcon 꼬출든남자 | 2009.04.08 17:51 신고 | PERMALINK | EDIT/DEL | REPLY
SDK 3.2덩가요?
파폭에서 한글 입력이 안되더라구요.. -ㅅ-
왜그런지좀 알려주세연~ ㅎㅎ
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.08 18:29 신고 | PERMALINK | EDIT/DEL
파폭에서 wmode 가 transparent 일 경우 한글입력 안되는 버그가 있습니다. -ㅁ-;;

관련 버그 보고도 했는데,
다음 업그레이드때 고쳐주마.. 라고만 하네요.
https://bugs.adobe.com/jira/browse/FP-1627
Favicon of http://blog.daum.net/joshuajh BlogIcon 죠쉬 | 2009.04.17 15:45 신고 | PERMALINK | EDIT/DEL | REPLY
필요했던 내용이네욥
살이되고 피가 됩니다욧
(__)
꾸바닥!
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.04.18 22:00 신고 | PERMALINK | EDIT/DEL
도움이 되셨다니 다행입니다. ;)
핫산 | 2010.05.20 18:33 신고 | PERMALINK | EDIT/DEL | REPLY
아 항상 mx_internal게 먼가 하고 넘어갔었는데 덕분에 알게되었네요
감사합니다^^
| 2011.12.08 13:35 신고 | PERMALINK | EDIT/DEL | REPLY
어도비에서는 만들때 왜 mx_internal로 선언해서 만든건가요?
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
prev"" #1 next