1、介绍
元数据标签所提供的信息是给flex编译器使用的。Flex编译器可以识别在ActionScript和MXML中定义的元数据,元数据可以用来定义组件的属性,事件,数据绑定和其他一些方面的信息。元数据是在编译期解释的,而不是运行时。元数据标签是和类,字段或者方法关联的,元数据标签修饰的总是下一条语句。
2、在ActionScript和MXML中定义元数据标签
ActionScript:
//Add the [Event] metadata tag outside of the class file.
[Event(name="enableChange", type="flash.events.Event")]public class ModalText extendsTextArea {
...//Define class properties/methods
private var _enableTA:Boolean;//Add the [Inspectable] metadata tag before the individual property.
[Inspectable(defaultValue="false")]public function set enableTA(val:Boolean):void{
_enableTA=val;this.enabled =val;//Define event object, initialize it, then dispatch it.
var eventObj:Event = new Event("enableChange");
dispatchEvent(eventObj);
}
}
MXML:可以在标签里定义元数据,也可以在
[Event(name="enableChange", type="flash.events.Event")]
import flash.events.Event;
// Define class properties and methods.
private var _enableTA:Boolean;
// Add the [Inspectable] metadata tag before the individual property.
[Inspectable(defaultValue="false")]
public function set enableTA(val:Boolean):void {
_enableTA = val;
this.enabled = val;
// Define event object, initialize it, then dispatch it.
var eventObj:Event = new Event("enableChange");
dispatchEvent(eventObj);
}]]>
3、Flex中的元数据标签
1)Alternative,修饰类的,指明修饰的类从哪个Flex版本开始有了新的替代类,但是该类并不过时,还是起作用。
如mx:Button里的:[Alternative(replacement="spark.components.Button", since="4.0")]
2)ArrayElementType,修饰Array变量,指明Array中元素的数据类型,这样Flex编译器可以检查给Array赋值时元素是否是正确的数据类型,不过只在MXML中才检查,actionScript中不检查。
如:
[ArrayElementType("String")]
public var newStringProperty:Array;
[ArrayElementType("Number")]
public var newNumberProperty:Array;
3、Bindable,数据绑定:语法:1、[Bindable];2、[Bindable(event="eventName")]
4、DefaultProperty,缺省属性,语法:[DefaultProperty("propertyName")],定义了此标签的属性,在MXML中给属性赋值的时候可以省略属性名:如asdfasdf
5、Deprecated,设置类,属性或者方法已经过时,当程序使用这类属性,编译器会给出警告。语法:四种方式:
[Deprecated("string_describing_deprecation")]
[Deprecated(message="string_describing_deprecation")]
[Deprecated(replacement="string_specifying_replacement")]
[Deprecated(replacement="string_specifying_replacement", since="version_of_replacement")]
6、Effect,效果