Flex 3 metadata tags

Flex引入了元数据标签的概念,它告诉编译器如何编译这段Flex 或actionscript代码。大多数人都使用过[Bindable]标签,元数据标签是一种 特殊的标签,它在代码中的作用就是向编译器提供如何编译程序的信息。实际上,这些标签并没有被编译到生成的SWF文件中,而只是告诉编译器如何生成SWF 文件。 这篇Post结合网上相关的资料 以及Adobe的help resource center的相关材料 介绍了16个元数据标签。

[ArrayElementType]

实际上,定义一个数组通常来说是一件很平常的事情,因为数组中的元素可以是任何类型的。不过,使用

ArrayElementType元数据标签可以让你定义数组元素的数据类型。下面的例子展示了如何使用[ArrayElementType]:

[ArrayElementType(”String”)]
public var arrayOfStrings:Array; [ArrayElementType(”Number”)]
public var arrayOfNumbers:Array;

[ArrayElementType(”mx.core.UIComponent”)]
public var arrayOfUIComponents:Array;

[Bindable]

Bindable元数据标签是最经常用到的一个元数据标签,因为它使程序组件之间的数据同步变得很容易。Bindable可以用来绑定简单数据类型、类、复杂数据类型以及函数。绑定数据的时候,你必须先使用元数据标签定义一下数据。Bindable也可以用来绑定到事件。

[DefaultProperty]

DefaultProperty元数据标签用来将一个单一属性设定为某个类的默认属性。它允许在一个容器标签内设定属性,而不用定义属性的名字。一个简单的例子就是一个自定义Button类。Listing 3 展示了一个简单的Button类,它将label属性设定为了DefaultProperty。Listing 4 展示了label属性是如何在自定义Button标签中作为一个字符串定义的。

[Deprecated]

A class or class elements marked as deprecated is one which is considered obsolete, and whose use is discouraged in the current release. While the class or class element still works, its use can generate compiler warnings.

[Embed]

Embed元数据标签用来导入图片到程序。可以通过两种方式使用Embed。你可以将图片嵌入到ActionScript中并将其指派给一个变量(如同下面代码中的第一个例子),或者你也可以将图片直接指派给组件的属性(使用下面代码中的第二个例子所示的语法规则)。

例1:

[Embed(source=”myIcon.gif”)]
[Bindable]
public var myIcon:Class;<mx:Button label=”Icon Button 1″ icon=”{myIcon}”/>
<mx:Button label=”Icon Button 2″ icon=”{myIcon}”/>

例2:

<mx:Button label=”Icon Button 1″ icon=”@Embed(source=myIcon.gif’)”/><mx:Button label=”Icon Button 2″ icon=”@Embed(source=myIcon.gif’)”/>

上面这两个例子产生的结果是一样的。创建myIcon类的好处是,它在一个类中只定义一次并可以绑定到程序中的多个组件。

[Event]

Event元数据标签用来声明那些被自定义类分派的事件。将这个元数据标签添加到类定义中之后,你就可以在MXML标签中添加事件处理函数来初始化该自定义类。

[Effect]

Effect元数据标签用来定义一个自定义效果,当某个事件发生的时候该效果会被分派。

[IconFile]

IconFile 是用来定义一个jpg,gif或者png文件的文件名的,它在你的自定义类中作为图标来使用。[Embed]元数据标签可以用来嵌入图片、SWF文件、音 乐文件以及视频文件等,而IconFile则只是用来嵌入用来作为自定义类图标的文件。下面是一个IconFile的例子:

[IconFile(”icon.png”)]
public class CustomButton extends Button
{}

[Inspectable]

在使用Flex Builder 2的时候,你可能会希望某些自定义组件的属性在代码提示和属性检查器(property inspector)中显示,Inspectable元数据标签就是用来定义那些属性的。

[InstanceType]

当在一个模板对象中声明一个像IDeferredInstance这样的变量时,InstanceType元数据标签就用来声明对象的类型。下面是InstanceType的用法:

[InstanceType(”package.className”)]

[NonCommittingChangeEvent]

NonCommittingChangeEvent元数据标签在某个特定事件发生的时候可以防止变量在事件发生的过程中被更改。

[RemoteClass]

RemoteClass 可以用来将一个ActionScript类绑定到一个Java类或一个ColdFusion CFC。这样做可以自动转换数据类型。下面的例子将包com.mydomain中的名为MyClass的ActionScript类绑定到了同一个包中名 为MyClass的Java类:

package com.mydomain {
[Bindable]
[RemoteClass(alias=”com.mydomain.MyClass”)]
public class MyClass {
public var id:int; public var myText:String;

}
}

[Style]

Style元数据标签用来为组件定义自定义样式属性的。只需要简单地将Sytle元数据标签添加到类的定义当然,然后就可以使用getSytle方法获取它的值了。

标签 描述
[ArrayElementType] 在数组中定义所有允许的数据类型。
[Bindable] 声明一个属性可以在代码中使用数据绑定表达式。
[DefaultProperty] 定义组件在MXML中使用时的默认属性的名称。
[Deprecated] 标识一个类或类的元素是不推荐使用的,这样编译器能认出他并在被调用时给出一个警告信息。
[Effect] 定义MXML的特效属性名称。
[Embed] 在编译时导入 JPED,PNG,SVG 或 SWF文件。也会导入SWC文件的图片资源。他的功能等同于MXML中的 @Embe 语法。
[Event] 定义MXML的事件属性的名称和类型。
[Exclude] 使 Flex Builder 的标签检查器忽略类元素。语法类似 [Exclude(name=”label”, kind=”property”)]
[ExcludeClass] 是 Flex Builder 标签检查器忽略类。这相当于ASDoc中的 @private 标签。
[IconFile] 定义一个图标文件,使组件在Adobe Flex Builder的插入面板中以该图标显示。
[Inspectable] 定义一个属性的列表,供组件使用者在 Flex Builder 的的属性提示和标签检查中使用。同时也定义了属性的可用值。
[InstanceType] 指定了 IDeferredInstance 中的,属性接受的数据类型。
[NonCommittingChangeEvent] 定义一个事件过渡触发器。
[RemoteClass] 把一个ActionScript对象映射到Java对象。
[Style] 为组件的样式属性定义一个MXML标签属性。
[Transient] 当一个 ActionScript 对象被映射到Java对象后,被该标签标识的属性,会从发送到服务端的数据中忽略掉。

Flex 3 metadata tags 标签相关推荐

  1. 帝国cms tag生成html,帝国CMS tags标签多种调用方法

    1.用帝国cms自带的自定义调用工具进行调用: [showtags]分类ID,显示数量,每行显示数量,显示排序,只显示推荐,推荐TAGS属性,显示间隔符,是否显示信息数,链接附加参数,链接使用变量[/ ...

  2. css display:flex 弹性布局 子标签设置宽度无效的问题

    前言 最难的果然还是css,工作中经常使用display:flex; 让多个竖直排列的元素变成横向排列,直到今天才发现display:flex; 会导致子标签的宽度失效. 正文 问题 <div ...

  3. 网站Tags标签优化技巧

    今天站长论坛小编来说说SEO优化中的tags标签小技巧. 1.tags标签最好不要设置太热的词 SEO优化中,不宜设置太热的的关键词,尤其是主页或许是频道页主推的词,这样会和主页以及频道页抢权重,与其 ...

  4. mysql中mapping标签的作用_3种高效的Tags标签系统数据库设计方案分享

    需求背景 目前主流的博客系统.CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分.相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的 ...

  5. 如何让DEDECMS织梦的TAGS标签静态化

    安装于使用说明:一.说明:本修改适用5.6 utf,可以生成网站所有TAG列表的静态网页文件,还有生成tag的首页静态文件.       修改前,请备份相关的原始文件. 二.修改步骤: 1.在DEDE ...

  6. 3种高效的Tags标签系统数据库设计方案分享

    需求背景 目前主流的博客系统.CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分.相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的 ...

  7. 织梦tags.php文件,DEDECMS织梦tags标签关键词url以ID

    以中文标签对应id为url并完成伪音讯html.如:/tags/1-1.html 切身测试DEDECMS V5.7 SP2版本 一.新旧tags比较 原先的: /tags/征收赋税光采积累/1/ 那会 ...

  8. 织梦tags.php一道二级目录,DedeCMS织梦Tags标签页制作

    织梦的默认模版是带有Tag页的,而我们要使用自己的模版建站,一般很少有Tag标签页的,这里就需要我们自己来新建Tag标签页模版,余斗根据Dede自带的模版总结出自建模版实现Tag页的方法,主要需要新建 ...

  9. DTCMS中文章增加tags标签和关键词时中文,替换为英文状态,

    DTCMS.Web\admin\article\article_edit.aspx 找到添加和修改的方法 model.tags = txtTags.Text.Trim()model.seo_keywo ...

最新文章

  1. DevOps时代测试应该如何应对?
  2. 如何在TypeScript中删除数组项?
  3. Citrix XenDesktop 7.X 视频播放优化
  4. 在 Element-UI 的 Table 组件上添加列拖拽效果
  5. linux系统下创建文件系统
  6. [TP5填坑]关于助手函数input一不小心取不到get值的解决办法
  7. 1900 页数学基础:面向 CS 的线性代数、拓扑、微积分和最优化
  8. php psr 什么意思,PHP的PSR系列规范都有啥内容,phppsr规范有啥_PHP教程
  9. Android监听返回键、Home键+再按一次返回键退出应用
  10. windows双屏切换
  11. 史上最简单MySQL教程详解(基础篇)之SQL语句以及预留关键字介绍
  12. linux下asm磁盘查看,ASM磁盘空间的查看
  13. hdfs上的csv文件导入mysql表_HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)...
  14. 小米平板4/4plus手机屏幕驱动板使用步骤说明
  15. html插入页码,Word添加页码后,每一页的页码都一样怎么办?
  16. 树形结构 —— 树与二叉树 —— 无根树转有根树
  17. 无人机航拍拍摄制作VR全景图教程
  18. 砥砺前行,匠心致远|袋鼠云联合创始人、易知微CEO宁海元荣获“数字工匠 ”
  19. 计算机一级怎么截图保存到桌面,怎么截屏电脑桌面
  20. kali linux 2.0安装教程,kali linux2.0安装vega

热门文章

  1. 信息学奥赛C++语言: 抽奖2
  2. 信息学奥赛C++语言:输出浮点数(1)
  3. python有什么用途视频_使用Python管理多平台视频流的最佳方法是什么?
  4. 音频放大电路_低音升压功率放大器电子电路的完整设计
  5. ::after和::before
  6. vue项目:this.function()中关于:this指针失效的问题
  7. vue Cli 环境删除与重装 - 版本文档
  8. vue-router配置介绍和使用方法(二)
  9. 修复版GEP宝塔内嵌版全解源码
  10. vue+iview后台管理模板