zoukankan      html  css  js  c++  java
  • 元数据标签metadata tag

    1、介绍

      元数据标签所提供的信息是给flex编译器使用的。Flex编译器可以识别在ActionScript和MXML中定义的元数据,元数据可以用来定义组件的属性,事件,数据绑定和其他一些方面的信息。元数据是在编译期解释的,而不是运行时。元数据标签是和类,字段或者方法关联的,元数据标签修饰的总是下一条语句。

    2、在ActionScript和MXML中定义元数据标签

    ActionScript:

    // Add the [Event] metadata tag outside of the class file. 
    [Event(name="enableChange", type="flash.events.Event")] 
    public class ModalText extends TextArea { 
     
        ... 
     
        // Define class properties/methods 
        private var _enableTA:Boolean; 
     
        // Add the [Inspectable] metadata tag before the individual property. 
        [Inspectable(defaultValue="false")] 
        public function set enableTA(val:Boolean):void { 
            _enableTA = val; 
            this.enabled = val; 
         
            // Define event object, initialize it, then dispatch it.  
            var eventObj:Event = new Event("enableChange"); 
            dispatchEvent(eventObj); 
        } 
    }

    MXML:可以在<fx:Metadata>标签里定义元数据,也可以在<fx:Script>标签里定义元数据。两种方式的区别是:在<fx:Metadata>标签里定义的元数据在被编译成Actionscript代码时被编译到类的前面,而<fx:Script>标签里定义的元数据编译在类里面。

    <?xml version="1.0"?> 
    <!-- TextAreaEnabled.mxml --> 
    <mx:TextArea xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx"> 
     
        <fx:Metadata> 
            [Event(name="enableChange", type="flash.events.Event")] 
        </fx:Metadata> 
     
        <fx:Script> 
            <![CDATA[ 
     
                // Import Event class. 
                import flash.events.Event; 
     
                // Define class properties and methods. 
                private var _enableTA:Boolean; 
     
                // Add the [Inspectable] metadata tag before the individual property. 
                [Inspectable(defaultValue="false")] 
                public function set enableTA(val:Boolean):void { 
                    _enableTA = val; 
                    this.enabled = val; 
         
                    // Define event object, initialize it, then dispatch it.  
                    var eventObj:Event = new Event("enableChange"); 
                    dispatchEvent(eventObj); 
                } 
            ]]> 
        </fx:Script> 
    </mx:TextArea>

    3、Flex中的元数据标签

    1)Alternative,修饰类的,指明修饰的类从哪个Flex版本开始有了新的替代类,但是该类并不过时,还是起作用。

    如mx:Button里的:[Alternative(replacement="spark.components.Button", since="4.0")]

    2)ArrayElementType,修饰Array变量,指明Array中元素的数据类型,这样Flex编译器可以检查给Array赋值时元素是否是正确的数据类型,不过只在MXML中才检查,actionScript中不检查。

    如:

    [ArrayElementType("String")]
    public var newStringProperty:Array; 
    [ArrayElementType("Number")]
    public var newNumberProperty:Array;

    3、Bindable,数据绑定:语法:1、[Bindable];2、[Bindable(event="eventName")]

    4、DefaultProperty,缺省属性,语法:[DefaultProperty("propertyName")],定义了此标签的属性,在MXML中给属性赋值的时候可以省略属性名:如<String>asdfasdf<String>

    5、Deprecated,设置类,属性或者方法已经过时,当程序使用这类属性,编译器会给出警告。语法:四种方式:

    [Deprecated("string_describing_deprecation")]
    [Deprecated(message="string_describing_deprecation")]

    [Deprecated(replacement="string_specifying_replacement")]
    [Deprecated(replacement="string_specifying_replacement", since="version_of_replacement")]

    6、Effect,效果

  • 相关阅读:
    superset可视化不同算法的点击率
    flume通过avro对接(汇总数据)
    Flume同时输出数据到HDFS和kafka
    剑指offer题目系列二
    剑指offer题目系列一
    Servlet生命周期与线程安全
    Servlet初始化及处理HTTP请求
    Servlet及相关类和接口
    web.xml配置文件详解
    递归与斐波那契数列
  • 原文地址:https://www.cnblogs.com/winson/p/3040627.html
Copyright © 2011-2022 走看看