元数据
由编译器实现的 <fx:Metadata> 标签
使用 <fx:Metadata> 标签可以在 MXML 文件中插入 metadata 标签。Metadata 标签为 Flex 编译器提供了描述在 Flex 应用程序中如何使用 MXML 组件的信息。Metadata 标签不会被编译为可执行代码,但提供了用于控制如何编译相应的代码部分的信息。
请注意,在 <fx:Metadata> 块中只能插入 metadata 标签;不能插入 MXML 或 ActionScript 代码。
例如,可以创建一个定义新事件的 MXML 组件。若要使 Flex 编译器知悉该事件,以便在 MXML 中对其进行引用,可以在该组件中插入 [Event] metadata 标签,如下例所示:
<fx:Metadata>
[Event("darken")]
</fx:Metadata>
此示例使用元数据将 darken 事件提供给 MXML 编译器。metadata 标签包括 [Event]、[Effect]、[Style]、[Inspectable] 和其他标签。有关详细信息,请参阅《创建和扩展 Flex 组件》一书中的“使用 Metadata 标签”一章。
在 ActionScript 类文件中使用 metadata 标签时,可以直接将 metadata 标签插入类定义中,而不必使用 <fx:Metadata> 标签。
在 MXML 文件中,可以将 metadata 标签与 ActionScript 代码一起插入 <fx:Script> 块,或将该标签插入 <fx:Metadata> 块,如下例所示:
<?xml version="1.0"?>
<mx:TextArea xmlns:mx="http://www.adobe.com/2006/mxml">
<fx:Metadata>
[Event("enableChange")]
</fx:Metadata>
<fx:Script>
<![CDATA[
// Import Event class.
import flash.events.Event;
// 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);
}
]]>
</fx:Script>
</mx:TextArea>
MXML 语法
<fx:Metadata> 标签的语法如下:
<fx:Metadata>
<!-- Metadata tags go here. -->
</fx:Metadata>
Tue Jun 12 2018, 11:21 AM Z