`
roger_588
  • 浏览: 69984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex 元数据及用法

阅读更多

     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也可以用来绑定到事件。

 

啥是绑定

[
Bindable]

public
 var
 name
:String
 = ""
;

作为一个public变量,肯定既可以被赋值,也能赋值给别的变量。绑定的作用就是,当name改变的时候(被赋值了),可能通知其它被name影响(赋
值给它们)的变量发生改变。这里的“可能”就需要编译器来判断,这就是为什么元数据是给编译器用的原因了。在mxml里用{}的语法的地方就是绑定的对
象,比如label={xxx.name},当name变化,label也跟着变化。这样,我们只是很简单的改变了name的值,由于有绑定,界面上的
label也跟着自动变化了

能用在哪里

三个地方:类, 变量, getter/setter。是不是public没有关系,private的就只能给自家用呗。用在Class上就是简单的给所有的public属性(包 括变量,getter/setter,普通方法)加上[Bindable],可是一般的方法不能用[Bindable]呀,于是一般就能看到flex给了 个warning,直接无视:)。变量嘛就是上面讲的,很简单略掉。

 

[
Bindable]

private
 var
 content:Array
 = new
 Array
(
)
;
[
Bindable]

public
 function
 set
 _content(
ct:String
)
:void

{

       content = ct.split
(
SEP)
;
        this
.dispatchEvent
(
new
 Event(
&
quot;_contectChanged&
quot;)
)
;
}

[
Bindable(
&
quot;_contectChanged&
quot;)
]
              
public
 function
 get
 _wholeText(
)
:String

{

       if
(
content.length
 == 0
)

       {

              return
 &
quot;&
quot;;
       }

       else

       {

              var
 _w:String
 = &
quot;&
quot;;
              for
(
var
 i:int
=0
 ; i&
lt;content.length
 ; i++)

              {

                     _w += content[
i]
 + &
quot;\r\n&
quot;;
              }

              return
 _w;
       }

}

[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方法获取它的值了。

 

 

 

分享到:
评论
1 楼 jyslb 2011-04-21  
代码格式太差了。

相关推荐

    Flex 中的元数据标签

    Flex 中的元数据标签的用法和详细介绍

    Flex 2 中的元数据标签

    在这个例子中,我们使用`[DocComment]`元数据标签来添加关于类的文档信息,并使用`[Access]`元数据标签来指定方法的访问级别。这种做法不仅有助于代码的自我解释,还能让其他开发者更容易理解代码的功能和用途。 ##...

    flex as3 元数据标签综合

    ### Flex AS3 元数据标签综合解析 #### 一、元数据标签概述 在Flex与AS3(ActionScript 3)开发中,元数据标签(Metadata Tags)是一种重要的语法结构,用于向编译器提供有关类或成员的额外信息。这些标签能够帮助...

    Flex Bind数据绑定实例代码

    在上述代码中,`[Bindable]`元数据告诉编译器该变量可以被数据绑定使用。`{message}`表达式是数据绑定的语法,它将Label的text属性与message变量关联。 除了简单的属性绑定,Flex还支持双向数据绑定。这使得UI组件...

    Flex Mate框架swc包及Mate用法

    SWC文件是Adobe Flash和Flex的二进制库格式,包含了类定义、资源和其他元数据。在本例中,“library.swf”包含Flex Mate框架的实现,可以直接导入到项目中,以避免在源代码中包含框架的所有源文件。 “catalog.xml...

    Visual MODFLOW Flex.rar 为Visual modflow flex 6.1 的数据集

    6. **使用方法**:用户需要理解地下水模型的基本概念,如达西定律、饱和-非饱和区、边界条件等,然后在软件中创建模型,设定参数,运行模拟,并根据输出结果进行分析。 7. **学习资源**:为了充分利用这个数据集,...

    Flash(Flex)反编译及修改

    - 反编译的代码可能与原始源代码有所不同,因为编译过程会进行优化,可能丢失某些元数据或注释。 - 代码质量不保证:反编译的代码可能不是最优或最清晰的,因为它是从二进制格式转换而来的。 总之,Flash和Flex反...

    Flex_2_中的元数据标签

    ### Flex 2 中的元数据标签 元数据标签在 Flex 2 开发中扮演着重要的角色,它们为编译器提供了必要的信息以更好地理解和编译应用程序。这些标签并不直接参与 SWF 文件的生成,而是作为指导编译过程的重要工具。 ##...

    Flex应用案例.zip

    - 媒体播放器:利用Flex可以构建自定义的多媒体播放器,支持视频、音频的播放控制,以及丰富的元数据展示。 - 游戏开发:虽然不如专门的游戏引擎强大,但Flex也能用于开发简单的游戏,尤其是那些需要复杂UI交互的...

    FLEX数据绑定专题

    例如,通过使用Bindable元标签或Bindable类修饰符,可以实现输入控件(如TextInput)与数据模型间的双向绑定: ```mxml ``` 在Flex中,数据绑定是提高开发效率、简化代码的关键特性。结合Java后端,开发者可以...

    flex 4 生命周期

    Flex 4的生命周期改进也体现在事件处理和元数据的使用上,例如` IOErrorEvent`和`StatusEvent`等事件,以及`[Bindable]`、`[SkinPart]`等元数据,这些都增强了组件与外部数据的交互和皮肤的自定义。 尽管Adobe提供...

    flex3去水印简单实用的方法

    总的来说,Flex 3的水印去除是一个相对简单的过程,主要通过创建一个特定的类并将其添加到MXML文件的元数据中。然而,这种方法应该谨慎使用,因为可能涉及到版权和许可问题。如果需要完全自定义界面,考虑购买无水印...

    flex 绑定元数据

    Flex绑定元数据的使用 Flex绑定元数据是Flex技术中的一个高级话题,它允许开发者通过元数据标记语言来动态地定义和引用外部资源,比如图片或者Flash文件。在Flex初学者的笔记中,主要强调了如何使用[Bindable]...

    FLEX数据绑定四种方式

    [Bindable]是一个元数据标签,用于标记那些可以进行数据绑定的变量或方法。当数据源发生变化时,Flex会自动触发相应的事件,使得UI能够实时更新。 **使用方法** 例如,标记一个变量为可绑定: ```xml &lt;![CDATA[ ...

    flex air 导出 excel

    而"catalog.xml"可能是这个库的清单文件,列出了库中所有可用的组件和它们的元数据。这两个文件在实现上述导出Excel功能时并不是直接相关的,但它们可能用于构建Flex Air应用的用户界面,比如创建用于导出数据的按钮...

    轻松去flex水印 附带使用说明

    Flex编译器在生成SWF文件时,会将特定的元数据信息,包括开发者名称和版本号等,写入到SWF的头部。这些信息在播放时会以透明文字的形式显示出来,即我们看到的水印。要移除这些水印,我们需要对SWF文件进行反编译和...

    flex-messaging-core.jar

    在Flex Messaging系统中,消息由Header和Body组成,可以携带元数据和实际的数据内容。AMF编码允许高效地序列化和反序列化复杂的数据结构。 5. **Security**: Flex Messaging Core还提供了一套安全机制,如身份验证...

    flex解析json的swc包(entity-flex-v1-02)及例子

    SWC是Adobe Flex的库文件格式,它包含了编译后的ActionScript代码和相关的元数据,可以被其他Flex或Flash项目引用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    Flex国际化方法

    1. **定义资源绑定**:在主文件`Baron.mxml`中通过元数据标签`@ResourceBundle`指定资源文件,如: ```xml [ResourceBundle("message")] ``` 这行代码指定了资源文件名为`message`。 2. **加载语言包**:...

Global site tag (gtag.js) - Google Analytics