Flex Metadata in ActionScript3

本文介绍了元数据(metadata)的概念及其在不同编程语言中的应用,包括.NET、Java和ActionScript,并详细解析了元数据如何与反射机制相结合,实现代码的特殊处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

metadata最先开始于dotnet吧,叫做Attribute;然后java也紧随其后,叫做Annotaion;actionscript则叫做Metadata。其中dotnet与ActionScript的语法格式上都是相似的,如AS中的[Bindable]。在Java中则是用@XXX这样的语法,如@override。不过目的都是一个,给类或方法或属性增加meta data标记,从而实现对这些被标记的代码进行一些特殊处理。譬如FlexUnit4, 不再要求从测试用例中的测试方法必须以test开头,而是在方法之前用[Test]进行标记。这个跟JUnit 4是一致的,因为FlexUnit4应该是参考了JUnit的。在dotnet中可以有如下的例子(该例子引自http://ondotnet.com/pub/a/dotnet/excerpt/prog_csharp_ch18/index.html?page=4 , 该文章是一篇很好的关于介绍dotnet Attribute的文章)

 

Java中的Annotation类似dotnet,你可以在这里 找到关于Annotation的例子,这个例子很能帮助你理解测试框架中用到的Test Metadata。

 

从以上可以看出metadata通常都与reflection紧密相连。在AS中亦是如此,不同的是在AS中并不像dotnet和java一样需要事先定义一个metadata相关的类。AS中通过解析flash.utils.describeType来获取metadata信息,而这也是reflection的一部分。一下我们给出一个代码片段,该代码源自http://www.quietlyscheming.com/blog/components/a-couple-of-samples-from-max-no-not-that-one/

 

在UI_Code中引用了Bind和HandleEvent两个metadata标记。并且在构造函数中调用了ASBinder.InitObject(this)从而解析这些metadata标记。这些标记中引用的source或者destination中对应的都是UIExample中的控件。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值