zoukankan      html  css  js  c++  java
  • 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/ 

  • 相关阅读:
    MySQL 慢日志没有自动创建新的日志文件
    Springboot为什么加载不上application.yml的配置文件
    android studio set proxy
    c++ win32 遍历进程列表
    React Prompt组件 阻止用户离开页面
    JS 浏览器上生成 UUID API
    部署 Nestjs 最佳实践
    Nginx 部署 单页面应用 + nodejs api 应用 最佳实践
    React JS: 如何使用 RxService 管理状态
    umijs 开发优化和生产优化
  • 原文地址:https://www.cnblogs.com/fxair/p/2155026.html
Copyright © 2011-2022 走看看