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,效果

  • 相关阅读:
    让 vscode 作为 SpringBoot,Java,Maven,甚至于 JavaScript,C,C++,Python,Php等多语言的开发工具吧!
    MySQL 连接错误集锦
    前端开发工具库:包含事件委托,动画处理,以及大部分常用的前端工具
    初探 Node.js 框架:eggjs (环境搭配篇)
    如何快速搭建一个 Node.JS 项目并进入开发?
    关于 JavaSrcipt 前端开发的建议:模块化开发
    Spring-Session 会话共享 -> 基于 Redis 集群,内附各大错误合集,包括配置,类寻找不到、连接错误等
    Java Email 邮件发送
    CSS 显示或隐藏子元素
    Ubuntu美化及配置,常见问题解决方案(仿 Mac 风格)
  • 原文地址:https://www.cnblogs.com/winson/p/3040627.html
Copyright © 2011-2022 走看看