Flex 获得注解信息

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

[url=http://cookbooks.adobe.com/index.cfm?event=showdetails&postId=11907]原文看这里[/url]

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值