<mx:Metadata> 태그는, MXML 파일에 메타데이타타그를 삽입하기 위해서 사용합니다. 메타데이타타그는, Flex 어플리케이션내에서 MXML 컴퍼넌트를 어떻게 사용할까에 임해서, Flex 컴파일러에 정보를 제공합니다. 메타데이타타그는 실행 가능한 코드에는 컴파일 되지 않고, 코드내의 각 부분을 컴파일 하는 방법을 제어하는 정보를 제공합니다.
<mx:Metadata> 블록에 삽입할 수 있는 것은 메타데이타타그만으로, MXML 나 ActionScript 코드는 삽입할 수 없습니다.
예를 들어, 새로운 이벤트를 정의하는 MXML 컴퍼넌트를 작성한다고 합니다. Flex 컴파일러에 이벤트를 인식시켜 MXML 내에서 참조할 수 있도록(듯이) 하려면 , 다음의 예로 가리키도록(듯이), 컴퍼넌트에 [Event] 메타데이타타그를 삽입합니다.
<mx:Metadata>
[Event("darken")]
</mx:Metadata>
이 예에서는, 메타데이타를 사용해, MXML 컴파일러로 darken 이벤트를 참조할 수 있도록(듯이) 하고 있습니다. 메타데이타타그에는,[Event],[Effect],[Style],[Inspectable] 등이 있습니다. 상세한 것에 대하여는, 「Flex 컴퍼넌트의 작성과 확장」의 「메타데이타타그의 사용」의 장을 참조해 주세요.
ActionScrip 클래스 파일내에서 메타데이타타그를 사용하는 경우는, 클래스 정의에 직접 메타데이타타그를 삽입합니다. <mx:Metadata> 태그는 사용하지 않습니다.
다음의 예로 가리키도록(듯이), MXML 파일에서는 메타데이타타그를 ActionScript 코드와 함께 <mx:Script> 블록에 삽입하는지, 또는 <mx:Metadata> 블록에 삽입합니다.
<? xml version="1.0"? >
<mx:TextArea xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Metadata>
[Event("enableChange")]
</mx:Metadata>
<mx:Script>
<! [CDATA[
// event 클래스를 읽어들인다
import flash.events.Event;
// 클래스 property와 Methods를 정의한다
private var _enableTA:Boolean;
// 개개의 property의 전에 [Inspectable] 메타데이타타그를 추가한다
[Inspectable(defaultValue="false")]
public function set enableTA(val:Boolean) :void {
_enableTA = val;
this.enabled = val;
// event object를 정의해, 초기화해 dispatch한다
var eventObj:Event = new Event("enableChange");
dispatchEvent(eventObj);
}
]]>
</mx:Script>
</mx:TextArea>
MXML 문장구조법
<mx:Metadata> 태그의 문장구조법은 다음과 같습니다.
<mx:Metadata> <! -- 여기에 메타데이타타그가 들어가는 --> </mx:Metadata>