读书人

Flex 取得注解信息

发布时间: 2012-11-25 11:44:31 作者: rapoo

Flex 获得注解信息
在Flex中自定义元数据(Metadata)标签(类似[Event],[Bindable]),作为注解信息

原文看这里

1. 配置编译器

对于新的Flex项目:在"additional compiler arguments(附加的编译器参数)"中添加 "-keep-as3-metadata = Meta1,Meta2"。注意,使用逗号来分隔不同的元数据标签。


提示:如果项目是ActionScript Library,则添加"keep-as3-metadata"作为附加的参数,然后将编译好的SWC载入项目,直接使用定义的元数据标签即可,无需再在"additional compiler arguments"中设置附加参数。

2.使用元数据标签

示例:

package
{
[Meta2(param1 = "param 1 value")]
public class TestClass
{

[Meta1(param1 = "param 1 value", param2 = "param 2 value")]
public var test1:String;


[Meta2(paramA = "param 1 value", paramB = "param 2 value")]
public function get test2():String
{
return null;
}

public function set test2(val:String):void
{
}

[Meta1(param1 = "param 1 value")]
public function someMethod():void
{
};

}
}

3. 在运行时使用元数据
只需调用describeType(TestClass)并使用E4X在结果中查找所需的数据即可

<type name="TestClass" base="Class" isDynamic="true" isFinal="true" isStatic="true">
<extendsClass type="Class"/>
<extendsClass type="Object"/>
<accessor name="prototype" access="readonly" type="*" declaredBy="Class"/>
<factory type="TestClass">


<metadata name="Meta2">
<arg key="param1" value="param 1 value"/>
</metadata>


<extendsClass type="Object"/>


<method name="someMethod" declaredBy="TestClass" returnType="void">
<metadata name="Meta1">
<arg key="param1" value="param 1 value"/>
</metadata>
</method>


<variable name="test1" type="String">
<metadata name="Meta1">
<arg key="param1" value="param 1 value"/>
<arg key="param2" value="param 2 value"/>
</metadata>
</variable>


<accessor name="test2" access="readwrite" type="String" declaredBy="TestClass">
<metadata name="Meta2">
<arg key="paramA" value="param 1 value"/>
<arg key="paramB" value="param 2 value"/>
</metadata>
</accessor>


</factory>
</type>

读书人网 >flex

热点推荐