컴포넌트에 사용자가 직접 이벤트를 구성하고자 할때 사용한다.
기본 구성 방법은 아래와 같다.
[Event(name="
eventName
", type="package.eventType"
)]아래는 myClickEvent 라는 이름으로 Event라는 이벤트를 만들어 낸 것이다.
[Event(name="myClickEvent", type="flash.events.Event")]
이와같이 이름은 사용자가 원하는 것으로 만들 수 있으며
type은 기본 이벤트 클래스의 Event 또는 서브 클래스 Event중 하나를 사용한다.
아래는 Event 메타데이터를 실제로 사용해본 예제이다.
textInput 에 키를 입력하면 해당 키 코드를 메세지로 출력하고 그 글자를 바로 지워준다.
소스에 나와있듯이 설정한 Event 를 사용자가 지정한 이름으로 mxml에서 불러올 수 있다.
EventTestKeyEvent.mxml
EventTest.mxml
[Style]
컴퍼넌트의 스타일 properties 의 MXML 태그 속성을 정의할 수 있다.
글자 색, 크기, 백그라운드 색 등등의 style을 지정할 수 있다.
기본적인 문장 구조는 아래와 같다.
[Style(name="style_name"[, property="value",...])]
| ||||||||||||||||||
Style 속성을 지정한다.
[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
getStyle로 paddingButton값을 받아 설정한다.
( 물론 값을 설정하기 위해 더 복잡한 구성으로 되어있지만 간단하게만 나타낸 것이다.)
var paddingBottom:Number = getStyle("paddingBottom");
mxml에서 아래와 같이 사용한다.
<mx:Button paddingButtom="20" />
[IconFile]
Flex Builder 의 [Insert] 바에 있는 컴퍼넌트를 나타내는 이미지를 변경 할 수 있다.
기본 문장 구조는 아래와 같이 구성되어 있다.
[IconFile("fileName")]
Flex 내의 Button.as 에는 아래와 같이 사용되었다.
[IconFile("Button.png")]
[Bindable]
public properties 가 데이터 바인딩식의 소스인 경우, Flex 는 소스 properties 의 변경시에 자동적으로 소스 properties 의 값을 destination properties 에 복사합니다. 다만, 복사를 실행하도록(듯이) Flex 에 통지하기 위해서는,
[Bindable]
metadata tag 를 사용해 properties 를 Flex 에 등록해, 소스 properties 에 이벤트를 송출(Dispatch)시킬 필요가 있습니다. 라고 FlexDoc에 나와있다.다시 말해 두개의 서로 다른 data를 연결하여 한쪽에서 값의 변경이 이뤄지면 다른 한쪽에서도
똑같이 값의 변경이 이뤄지게 하는 것이다.
기본 문장 구조는 아래와 같이 구성되어 있다.
이벤트 명을 생략하면 자동적으로
propertyChange
라고 하는 이벤트를 생성한다.사용예는 아래와 같다.
1.
클래스에 설정을 하는 경우 클래스 내의 모든 data에 적용이 된다.
이렇게 하는 경우 [Bindable(event="propertyChange")] 와 같은 표현이 된다.
2.
특정 변수에 Bindable을 설정할 수도 있다.
3.
getter/setter에 bindable을 지정할 수도 있다.
[Inspectable]
inspectable은 mxml 코드상에서 코드힌트가 나오도록 정의하는 역할을 한다.
[Inspectable] metadata tag 는, properties 의 변수 선언, 또는 그 properties 에 바인드 되는 setter 및 getter 메소드명 위에 선언할 수 있다.
기본적인 문장구조는 아래와 같다.
[Inspectable(attribute=value
[,
attribute=value,...]
)]property_declaration name:type
;
[Inspectable(attribute=value
[,
attribute=value,...]
)]setter_getter_declarations
;
properties |
데이터형 |
설명 |
---|---|---|
category |
String |
properties 를, Flex Builder 유저 인터페이스로 Property inspector 내의 특정의 부범위로 분류합니다. |
defaultValue |
String 또는 Number |
Inspectable properties 의 디폴트치를 설정합니다. 이 properties 는, getter 함수 또는 setter 함수로 사용되는 경우에 필요합니다. 디폴트치는 properties 정의에 의해 정해집니다. |
enumeration |
String |
그 properties 로 허용 되는 정당한 설정치의 칸마 단락 리스트를 지정합니다. |
environment |
String |
허용 하지 않는 Inspectable properties ( |
format |
String |
properties 가 값을 파일 패스로 보관 유지하고 있는 것을 나타냅니다. |
listOffset |
Number |
List 치에의 디폴트의 인덱스를 지정합니다. |
name |
String |
properties 의 표시명 (예를 들어, |
type |
String |
형태 지정자를 지정합니다. 생략 하면, properties 의 데이터형이 사용됩니다. 사용할 수 있는 값은 다음과 같습니다.
properties 가 배열인 경우는, 그 배열로 유효한 값을 리스트 할 필요가 있습니다. |
variable |
String |
이 파라미터를 바인드 하는 대상의 변수를 지정합니다. |
verbose |
Number |
|
아래는 실제 사용 방법이다.
이렇게 하면 mxml상에서 해당 컴포넌트를 사용할 때 lt;myComp:TextP textPlacement 라고 하면 left, right값을 설정할 수 있도록 code hint가 보여지게 된다.