[Flex 2.0.1]커스텀 컴포넌트에 사용하는 Metadata 태그 소개
Flex 컴파일러에게 정보를 제공하기 위해 MXML과 ActionScript 파일안에 metadata 태그를 삽입해야한다.
Metadata 태그는 실행코드안에서 직접 컴파일되지 않지만 코드안에 한 부분이 어떻게 컴파일 되어져야 하는지 제어하는 정보를 컴파일러에게 제공한다. 한마디로 컴파일러가 Flex코드를 컴파일하는데 미리 고려해서 컴파일해야하는 부분을 선언해주는 것과 같다. 꼭 컴파일러가 아니더라도 프로그래머에게도 코드가 직관적이도록 도움을 준다.
여기서는 MXML과 ActionScript에서 컴포넌트를 생성할때 사용하는 Metadata 태크에 대해 설명한다.
Flex2 개발자 가이드는 어플리케이션을 만들때 사용하는 [Embed] Metadata 태그와 같은 추가적인 Metadata 태그에 대한 정보 또한 포함한다. [Embed]에 대한 더 많은 정보는 Flex 2 개발자 가이드의 Embedding Assets 를 참고한다.
Metadata 태그에 대해
Metadata 태그는 Flex 컴파일러에게 어떻게 Flex Application안에 사용되는 여러분이 만든 컴포넌트가 사용되는지 정보를 알려준다. 예를들어 새로운 이벤트를 정의하는 컴포넌트를 만든다고 하자. 컴포넌트안에 삽입한 [Event] Metadata 태그는 Flex 컴파일러가 Event가 있다는 것을 미리 알게 되어 그에 합당한 컴파일을 수행한다. 다음 ActionScript Class 예제를 보자.
이 예제에서 [Event] metadata 태그에서 이벤트 이름과 이 이벤트에 의해 처리할 이벤트 오브젝트 타입의 정의를 묘사한다. [Event] metadata 태그로 Flex 컴파일러에게 이벤트가 있다는 것을 알려준 후에 다음과 같이 MXML안에 참조할 수 있다.
만약 [Event] Metadata 생략하면 Flex는 MXML 파일을 컴파일할때 문법에러(syntax error)를 발생시킨다. 이때 발생하는 에러 메세지는 "enableChanged 속성을 인식할 수 없습니다" 이다.
Metadata 태그를 사용하는 방법에 대해서는 Using metadata tags를 참고한다.
Metadata tags의 종류
다음 테이블은 ActionScript Class 파일에서 사용하는 metadata 태그에 대해 설명한다.|
Metadata 태그 |
설명 |
|---|---|
|
|
Array의 각 요소에서 사용할 데이타 type을 선정한다. 가령 Number만 쓰겠다면 [ArrayElementType] Array의 요소가 Number만 사용하도록 설정할 수 있다. 더 많은 정보는 ArrayElementType metadata tag 를 참고한다. |
|
|
[Bindable]로 정의된 변수는 데이터 바인딩을 하기 위한 소스로서 사용할 수 있다. 더 자세한 정보는 Bindable metadata tag를 참고한다. |
|
[DefaultProperty] |
MXML파일에서 컴포넌트를 사용할때 컴포넌트의 Default속성의 이름을 정의한다. 자세한 정보는 DefaultProperty metadata tag를 참고한다. |
|
|
Effect를 위한 MXML 속성의 정의한다. 자세한 내용은 Effect metadata tag 를 참고한다. |
|
|
JPEG, GIF, PNG, SVG, SWF 파일을 컴파일할 시점에 가져와 같이 컴파일 한다. 또한 SWC 이미지 정보를 가져온다. |
|
|
이벤트와 이벤트 형태의 데이타를 위한 MXML 속성을 정의한다. 자세한 내용은 Event metadata tag를 참고한다. |
|
|
Adobe® Flex™ Builder™ 의 Insert bar에 컴포넌트를 대표하는 아이콘을 위한 파일이름을 확인한다. 자세한 내용은 IconFile metadata tag 를 참고 |
|
|
이 Metadata 태그로 정의된 것은 속성 힌트와 Flex Builder의 Tag 지시자에서 컴포넌트 사용자들에게 노출하도록 한다. 자세한 내용은 Inspectable metadata tag를 참고한다. |
|
|
IDeferredInstance타입의 속성이 허용된 데이터 타입을 설명한다. 자세한 내용은 InstanceType metadata tag를 참고 |
|
|
interim trigger와 같은 이벤트를 가리킨다. 더 자세한 사항은 NonCommittingChangeEvent metadata tag를 참고 |
|
|
컴포넌트에서 Style속성을 위한 MXML 속성을 정의. 자세한 내용은 Style metadata tag 참고 |
아래에 링크는 위에서 설명한 Metadata 태그에 대해 자세히 설명하고 있다.(영문)
원본사이트 : http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part3_CreateComps_135_1.html
Flex를 공부할 때 Metadata는 반드시 이해하고 넘어가야 한다. 특히 왜 Metadata 태그를 이용하는지 정확하게 알아야 할 것이다.
번역 : 지돌스타 (http://blog.jidolstar.com/95)
번역 실력이 안좋은 관계로 제가 이해하는 방향으로 번역했고, 부가적인 설명도 좀 적었습니다. 참고하시면 도움이 될 것 입니다. 위에서 제시한 각각 Metadata 태그에 대해서도 번역할 예정입니다. ^^
'Adobe Flash Platform' 카테고리의 다른 글
| [Flex 2.0.1]Label위에 올라온 한글 폰트 회전 시키기 (2) | 2007/06/02 |
|---|---|
| Flex 2 컴포넌트 제작과 확장 (2) | 2007/05/29 |
| [Flex 2.0.1]커스텀 컴포넌트에 사용하는 Metadata 태그 소개 (4) | 2007/05/29 |
| Flex Component간 종속성을 없애보자. (Event 를 사용하자) (9) | 2007/05/25 |
| [팁]Sprite 사용법 (4) | 2007/05/25 |
| Flex에서 Dynamic 클래스 상속받아 사용시 주의사항 (2) | 2007/05/23 |
정보 감사합니다. ^^
대단하십니다. 각각의 메타테크 번역을 기다릴께요~
좋은글 감사합니다~~ 담아갑니다~~^ㅡ^*
좋은글 감사합니다.