Actionscript 3 自定义 matedata

metadata就是元数据,反应一个类本质的属性,可以通过describeType(obj)来得到反应该对象的xml.

要自定义元数据,如[MyMatedata()]:

package {
    
public   class  MyClass extends Object{
        [MyMatedata(name
= " ha " ,name2 = " haha2 " )]
         
public  var a:String;
         
public  function MyClass(){
            super();
         }
         
public  function getA(): void {
            trace(
" dd " );
         }
    }

}  


describeType(new MyClass())返回:

< type  name ="MyClass"  base ="Object"  isDynamic ="false"  isFinal ="false"  isStatic ="false" >
  
< extendsClass  type ="Object" />
  
< variable  name ="a"  type ="String" >
    
< metadata  name ="MyMatedata" > ---------------------------------->自定义元数据
      
< arg  key ="name"  value ="ha" />
      
< arg  key ="name2"  value ="haha2" />
    
</ metadata >
    
< metadata  name ="__go_to_definition_help" >
      
< arg  key ="pos"  value ="108" />
    
</ metadata >
  
</ variable >
  
< method  name ="getA"  declaredBy ="MyClass"  returnType ="void" >
    
< metadata  name ="__go_to_definition_help" >
      
< arg  key ="pos"  value ="189" />
    
</ metadata >
  
</ method >
  
< metadata  name ="__go_to_ctor_definition_help" >
    
< arg  key ="pos"  value ="137" />
  
</ metadata >
  
< metadata  name ="__go_to_definition_help" >
    
< arg  key ="pos"  value ="26" />
  
</ metadata >
</type> 
 

 

这样就可以通过给类添加元数据从而进行编码活动,基于元数据的编程很多时候被忽视,但是使用元数据有时候会很方便,尤其是在做AS3反射,和写框架的时候.

describeType 实现actionscript语言的反射,这样通过元数据可以进行更多的编程.

在使用自定义元数据时,需要在flex sdk的编译参数里面添加.

 -keep-as3-metadata+=MyMetadata

注意是+= ,如果写成=就会覆盖很多原生自带的元数据标签,从而导致出问题

 

转自:http://sswilliam.blog.163.com/blog/static/18969638320116103225397/ 

转载于:https://www.cnblogs.com/fxair/archive/2011/08/26/2155026.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值