'keyDown'에 해당되는 글 1건
2008.07.08 15:27
사용자 정의 컴포넌트(custom component)를 만들었을때, 특정 이벤트를 발생시켜야하는 경우가 종종 있습니다. 마치 Button 을 사용자가 Click 하였을 때, Click Event가 발생하는 것 처럼 말이죠.  아래의 예제는 TextInput을 상속한 MyTextInput이라는 사용자 정의 컴포넌트입니다. 이 컴포넌트의 추가적인 기능으로는 키 입력시 'backspace' 를 입력하면, backspace 이벤트를 발생시키는 것입니다. (MXML로 만든 코드만 올려놓았는데, AS로 만든 버전도 같이 올렸습니다. 둘다 할 줄 알아야 좋죠 ㅋ)

MXML 로 만든 MyTextInput 컴포넌트 (MyTextInput.mxml)

AS로 만든 MyTextInput 컴포넌트 (MyTextInput.as)


keyDown 이벤트가 발생할때에 입력한 값이 backspace에 해당하는 '8' 이면  backspace 이벤트를 발생하도록 하였습니다. 여기서 눈여겨 보셔야 할 것은 Event 메타태그인데요. 위의 코드에서 아래와 같이 선언하였습니다.
<mx:Metadata>
  [Event(name="backspace",type="flash.events.Event")]
</mx:Metadata>
'선언해 놓은 컴포넌트에서 발생되는 이벤트가 이런 것이 있다~' 라고 선언해준다고 생각하시면 되겠습니다. 2가지를 적어야 하는데요, name과 type 입니다. name에는 해당 이벤트 이름, type 에는 해당 이벤트 클래스를 적어주시면 됩니다. 위와 같이 선언해놓으면 아래와 같이 name이 MXML 상에서 아래의 이미지와 같이 이벤트로 표시됩니다.



이 backspace 이벤트를 이용하여 아래와 같이 예제를 한번 만들어보았습니다. 사용자가 backspace 키를 누르면 아래의 TextArea 에 backspace를 눌렀다는 메세지가 나오게 됩니다.









그 렇다면 상단의 코드에서 보시면 MyTextInput 컴포넌트에서  keyDown 이벤트 핸들러를 지정한 2행을 보시면 TextInput 에도 keyDown 이벤트에 대해서 메타태그가 선언되어 있다 라고 유추해볼 수 있습니다. 실제로 TextInput 에는 레퍼런스에서 볼 수 있듯이 TextInput에서 정의된 4개의 이벤트가 아래와 같이 메타태그로 선언되어 있습니다.



keyDown 이벤트는 InteractiveObject 에서 정의되어 있어서 소스를 직접 확인할 수는 없네요. 안타깝습니다. ;)

이와 같은 자료는 지용호님의 블로그에 [Flex 2.0.1]커스텀 컴포넌트에 사용하는 Metadata 태그 소개 라는 포스트가 존재합니다만, 아직 어려워하시는 분들이 있는 것 같아 다시한번 설명해보았습니다.

이상으로 Event 메타태그에 대해서 알아보았습니다. ;)
신고
Creative Commons License
Creative Commons License
dilu | 2008.07.08 10:00 신고 | PERMALINK | EDIT/DEL | REPLY
어제 마침 커스텀 이벤트에 대해 공부했었는데, 쉽게 정리가 되네요 ~
좋은 글 감사합니다 (_ _)
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.08 11:03 신고 | PERMALINK | EDIT/DEL
방문 감사합니다~ ;)
박스농사 | 2008.07.08 10:55 신고 | PERMALINK | EDIT/DEL | REPLY
아 머리아퍼.
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.08 11:03 신고 | PERMALINK | EDIT/DEL
두통엔 타이레놀~
김민성 | 2008.07.08 11:28 신고 | PERMALINK | EDIT/DEL | REPLY
항상 옆자리에 앉아 있는데...
이제서야 댓글을 남기네요~ ^^
근데 플렉스 자료 만긴 정말 많다... 여기 팬들도 많은거 같아요~~ ^^
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.08 15:15 신고 | PERMALINK | EDIT/DEL
공부해서 남주자! 스타일이랄까요. ㅋ
Favicon of http://lovedev.tistory.com BlogIcon ActionDev | 2008.07.08 12:49 신고 | PERMALINK | EDIT/DEL | REPLY
잘봤어요~ ^^
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.08 15:14 신고 | PERMALINK | EDIT/DEL
방문 감사합니다. ;)
Favicon of http://genial12.tistory.com BlogIcon 양팸두목 | 2008.07.08 17:03 신고 | PERMALINK | EDIT/DEL | REPLY
술한잔 해야 될낀데.ㅋ
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.09 06:53 신고 | PERMALINK | EDIT/DEL
뉘신지? ^^;
아카시아 | 2008.07.09 00:20 신고 | PERMALINK | EDIT/DEL | REPLY
며칠전 질문에 답해주셔서 감사합니다. 덕분에 잘 해결되었어요~
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.09 06:53 신고 | PERMALINK | EDIT/DEL
네엡! 도움 되셨다니 잘되었네요 ㅎ
Favicon of http://blog.jidolstar.com BlogIcon 지돌스타 | 2008.07.09 13:49 신고 | PERMALINK | EDIT/DEL | REPLY
아주아주 좋은 글입니다. ㅎㅎㅎ
천문노트에 bindable metadata 태그에 대한 글 올려놨어요 ㅎㅎ
http://astronote.org/board/index.php?print=&amp;menu=7255&amp;table_name=flex&amp;job=view&amp;idx=27202&amp;page=1
Favicon of http://warkyman.tistory.com BlogIcon 검쉰 | 2008.07.09 15:36 신고 | PERMALINK | EDIT/DEL
와우~ 대단하심!!! +_+
전 요즘에 SDK 까보자는 생각에 하나씩 죄다 보고 있는 중입니다. ;) 힘드네요;;
비만짱구 | 2009.02.10 16:25 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 글이네요. 지돌님 글 보고 어려워 한다는 사람들중 한명입니다. 잘 보고 갑니다.
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.02.15 11:19 신고 | PERMALINK | EDIT/DEL
방문 감사드립니다 ;)
강동 | 2009.07.07 17:04 신고 | PERMALINK | EDIT/DEL | REPLY
잘봤습니다...퍼가도될까요?
Favicon of http://blog.flashplatform.kr BlogIcon 검쉰 | 2009.07.07 21:39 신고 | PERMALINK | EDIT/DEL
출처만 밝히시면 퍼가셔도 좋습니다 ;)
Favicon of http://blog.chanik.com BlogIcon 찬익 | 2009.07.13 12:04 신고 | PERMALINK | EDIT/DEL | REPLY
cancelable도 함께 고고싱
Favicon of http://blog.younghorn.com BlogIcon 이민철 | 2009.11.23 10:59 신고 | PERMALINK | EDIT/DEL | REPLY
좋은 글이네요.
AS 랑 다르군요.
어쩐지 MXML에 아무리 넣어도 안보이더라고요..
메타태그에 넣어야하네요..
엉엉 ㅠㅠ

고맙습니다.
상팔이 | 2010.08.27 00:24 신고 | PERMALINK | EDIT/DEL | REPLY
api 보다 더 이해하기 싶게 설명해 놓으셨네요..
좋은 정보 감사합니다.
cjssus | 2012.04.10 09:03 신고 | PERMALINK | EDIT/DEL | REPLY
담아갑니다. 좋은내용 감사합니다.
- 덧글 좀..(굽신굽신) : 장문의 덧글은 트랙백을 이용해주세요 ;^)
Name
Password
Homepage
Secret
prev"" #1 next