`

flex as3 元数据标签综合

    博客分类:
  • AS
阅读更多

http://www.cnblogs.com/chocolate/archive/2009/05/25/1488574.html

ArrayElementType:

这是指定自己定义的数组中元素的类型,应该类似java中的泛型,用的不多(至少我就没用过,找资料的时候顺便找到的),类似的代码如下:

[ArrayElementType("String")]
public var arrayOfStrings:Array;

这样,这个array就只能放String类型的对象。

 

Bindable:

毫无疑问这是最常用到的一个标签,几乎所有和数据打交道的地方都会用到这个标签。使用这个标签的属性一旦改变就会dispatch一个事件给监听器,可以选择后面带与不带参数两种方式:

[Bindable]:不带参数就表示使用默认事件,那么flex在满足触发条件是自动发送一个propertyChange事件。

[Bindable(event="eventname")]:带参数表示使用指定的事件,当然首先要把事件给注册好才行。

可以在3个地方使用[Bindable]标签:

1. 在public class定义前,这个场景不太常用,这个时候[Bindable]会绑定所有作为变量定义的public属性,并且所有的public属性都定义有 getter和setter方法,[Bindable]没有参数,flex会自动创建一个propertyChange事件来处理所有的公有属性。类似代 码如下:

[Bindable]

public class SelfInput extends SimpleWidget

2.在public, protected 或 private 属性前,格式为:
[Bindable]
public var foo:String;

一旦foo值被改变,那么所有使用foo属性的地方都会触发propertyChange事件。

3.在getter和setter事件前定义[Bindable]标签。使用标签时,需要同时定义getter和setter方法,如:

[Bindable]

public function set width(val:Integer):void {
}
public function get width():Integer{
}
如果需要指定发送事件,则如下:

[Bindable(event="redraw")]

public function set width(val:Integer):void {

dispatchEvent(new Event("redraw"));
}
public function get width():Integer{
}

 

CollapseWhiteSpace

没有找到文档,等到搞明白什么意思的时候再补完。

 

DataBindingInfo

没有找到这个标签的文档,官方的回答是这是内部标签,只在内部使用的。

 

DefaultBindingProperty

没有找到这个标签的文档,官方的回答是这是内部标签,只在内部使用的。

DefaultProperty

这个标签也是很少使用的,主要是将一个组件的某一属性指定为他的默认属性,这样在使用该组件时不需要指定属性的名字而是使用该组件的子元素即可。类似代码如下:

定义一个默认属性

[DefaultProperty("text")]

public class SelfInput extends SimpleWidget

使用默认属性

<comp:SelfInput>

<mx:String>testText</mx:String>

</comp:SelfInput>

 

DefaultTriggerEvent

没有找到这个标签的文档,官方的回答是这是内部标签,只在内部使用的。

 

Embed

用来把图片,音乐,视频什么的导入到程序中去,可以用这个标签把资源直接整合到swf中去,类似代码如下:

//定义代码

[Embed(source="testIcon.gif")]

public var testIcon:Class

//使用代码

<mx:Button icon="{testIcon}"/>

这时候这个按钮上面就有一个小图标啦。

 

Event

这个标签主要在编写显示组件时使用,使用这个标签就能够为组件提供一个事件处理函数的接口。定义组件时,可以为该组件赋一个方法在事件触发时调用。类似代码如下:

//定义代码

[Event(name="textChanged", type="flash.events.Event")]
public class SelfInput extends SimpleWidget{

private var _text:String;
public function set text(s:String):void {
_text= s;
var eventObj:Event = new Event(“textChanged");
dispatchEvent(eventObj);
}

}

//调用代码

<mx:Script>

<![CDATA[

public function textChanged(eventObj:Event):void {
trace(eventObj.target.text);
}

]]>

</mx:Script>

<myComp:SelfInput textChanged="textChanged(event)"/>


Effect

用来定义事件触发时产生的效果,和Event标签一起使用。类似代码如下:

//定义代码

[Event(name="textChanged", type="flash.events.Event")]

[Effect(name="textChangedEffect", event="textChanged")]
public class SelfInput extends SimpleWidget{

}

//使用代码

<myComp:SelfInput textChanged="textChanged(event)" textChangedEffect="changeEffect"/>

此时,input组件的text改变时产生效果。使用effect可以制作许多花哨的效果,比如翻页什么的,效果的使用以后再开一篇文章记录。

 

IconFile

IconFile 标签类似Embed标签,也是用来嵌入资源的,只是Embed标签可以嵌入图片、swf、视频、音频等,IconFile只能用来潜入图片文件作为自定义 类的图标,在FlexBuilder的Components视窗中找到该组件就能看到它所使用的icon。类似代码如下:

[IconFile(”inputIcon.png”)]

public class SelfInput extends SimpleWidget{

}

Inspectable

属性的代码提示和属性检查,在FlexBuilder中使用该组件时在properties视窗中可以看到该属性的值提示,主要用于一个属性的值为几个固定选项时。类似代码如下:

[Inspectable(category="General", enumeration="text,password", defaultValue="text",type="String")]

public var inputType;

 

InstanceType

似乎是可以用于模板模式,用于限定引用的对象的类型,与IDeferredInstance一起使用。类似代码如下:

//定义代码

[InstanceType("mx.controls.Button" )]

public var uploadBtn:IDeferredInstance;

private function init():void {

addChild(UIComponent(uploadBtn.getInstance()));

}

//使用代码

<myComp:SelfInput>

<myComp:uploadBtn>

<mx:Button label="upload"/>

</myComp:uploadBtn>

</myComp:SelfInput>

还没有遇见过使用场景,不明白为什么不直接使用Button对象引用。

 

NonCommittingChangeEvent

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

示例代码:

[Bindable(event="valueCommit")]
[NonCommittingChangeEvent("change")]
function get text():String {
return getText();
}
function set text(t):void {
setText(t);
// Dispatch events.
}
这 样,修改text的时敲入字符就不会触发组件的change事件,只有在所有字符输入完成后才能触发valueCommit事件,可以用于对输入字符进行 验证。目前主要遇到的使用场景为在输入框中输入选中组件的宽与高来改变组件的大小,此时不希望改变输入值立刻就改变组件的大小,而是希望改变输入值完成时 点击enter键后改变组件的大小,就可以绑定enter事件,不提交change事件。

 

RemoteClass

大用处。在使用远程调用时将flex的对象和java对象绑定起来,直接将pojo对象通过二进制的方式从前台传递到服务器端。实例代码如下:

package com.priv {
[Bindable]
[RemoteClass(alias="com.priv.UserDo")]
public class UserDo{
public var id:int;

public var name:String;

}
}

这时,java的UserDo对像需要有id和name两个属性的getter和setter,通过BlazeDs框架或是lds框架就能够实现和servlet容器之间的对象远程传递。

 

ResourceBundle

用于在运行态加载一些文件,目前主要用于做国际化。不过似乎这种国际化方式不能像java那样通过虚拟机的语言来自动指定使用哪个语言文件,需要在编译命令中人工指定使用哪个目录下的资源文件,如下:

-locale zh_CN -allow-source-path-overlap=true -source-path=d:\flex3_projects\wide\locale\zh_CN

之后就可以在d:\flex3_projects\wide\locale\zh_CN这个目录下建立properties文件用于保存国际化信息。properties文件和java的properties文件格式相同。都是如果key=name的键值对。

最后就可以在代码中引用它了:

[ResourceBundle("wide")]

public function init():void{

trace(resourceManage.getString("key"));

}

 

Style

用于给自定义组件添加样式属性。只需要将style标签添加到类的定义中去,就可以使用getStyle去获取这个样式的值。在as中也能使用setStyle去给组件设置一个样式。实例代码如下:

//定义代码

[Style(name="borderColor",type="uint",format="Color",inherit="no")]
public class SelfInput extends UIComponent{

public function init():void{

trace(getStyle("borderColor"));

}

}

//使用代码

<myComp:SelfInput borderColor="#000000"/>

分享到:
评论
1 楼 javaEEdevelop 2011-03-12  
embed不能定义视频格式

相关推荐

    Flex 中的元数据标签

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

    Flex 2 中的元数据标签

    ### Flex 2 中的元数据标签 在Flex 2中,元数据标签是用于提供类、方法或属性的额外信息的一种特殊标记。这些标签通常位于类定义或成员声明之前,并被ActionScript编译器用来控制类的行为或者为开发工具提供有关...

    Flex AS3学习笔记总结

    Flex 是 Adobe 开发的 RIA(Rich Internet Applications)工具,包括 Flex3 SDK、Flex Builder 和服务器产品,如 Lifestyle Data Services、CodeFushion。Flex 应用程序用 Flash.swf 文件格式封装发布在 HTML 里面,...

    as3/flex4.6

    - **标签语言**:将复杂的AS3代码以直观的XML标签形式展现,提高了代码的可读性和易维护性。 - **开发效率高**:内置了大量的UI组件和控件,减少了开发时间。 - **项目管理便捷**:通过组件逻辑与视图的分离,使得...

    flex as3虚线

    在Flex AS3开发中,创建虚线效果是常见的需求,特别是在UI设计中,虚线常用于表示分隔、选中状态或非连续路径等。本文将深入探讨如何在Flex AS3环境中实现虚线效果。 首先,我们需要理解AS3(ActionScript 3)是...

    flex 园 线 flex as3 园 线

    flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线

    Flex教程系列之(四) AS3语法——面对对象编程

    Flex教程系列之(三) AS3语法——控制语句和数据类型 http://download.csdn.net/source/1161852 Flex教程系列之(四) AS3语法——面对对象编程 http://download.csdn.net/source/1161879 Flex教程系列之(五) AS3...

    flex的as3xls读写excel

    根据给定的信息,本文将详细解释Flex框架中利用as3xls库进行Excel文件读写的实现原理及具体步骤。 ### 一、as3xls简介 as3xls 是一个用于Adobe Flex和ActionScript 3项目的库,它允许开发人员轻松地创建、读取和...

    Flex 3D标签云

    3. **MXML**:掌握Flex的标记语言,用于声明界面组件和数据绑定。 4. **3D库和组件**:了解如何导入和使用FlexCumulusTagCloud库,以及它的API接口和配置选项。 5. **图形渲染**:学习使用`flash.display`包中的类,...

    flex as3zip 文件解压

    在Flex开发中,AS3Zip库提供了一种方便的方式来处理ZIP文件的压缩和解压缩操作。这个技术主要用于创建和管理可下载的文件包或者在应用程序内部处理数据存储。以下是关于"flex as3zip 文件解压"的相关知识点: 1. **...

    flex+as3项目渲染器的使用

    在Flex和AS3开发中,项目渲染器(ItemRenderer)是一个关键的概念,它允许开发者自定义数据项在UI组件中的显示方式。项目渲染器通常用于数据网格、列表或其他可滚动的容器,使得数据显示更加丰富和交互性更强。下面...

    as3 flex mxml调用.as文件例子

    在Flex项目中,MXML和AS3通常一起工作,MXML负责视图,而AS3处理业务逻辑和数据操作。 标题“as3 flex mxml调用.as文件例子”指出,我们要讨论的是如何在MXML文件中引用和使用AS3编写的类。这通常涉及到以下步骤: ...

    flex和as3之间互相调用的方法

    在Flex项目中,用户界面通常由MXML组件定义,而业务逻辑和数据处理则通过AS3代码实现。本文将深入探讨如何在Flex和AS3之间进行互相调用,以实现更高效的应用程序设计。 首先,我们了解Flex组件和AS3脚本的基本关系...

    flex+as3帮助文档(pdf格式)

    flex as3 帮助文档 pdf格式 flex as3 帮助文档

    flex+as3麻将游戏源码

    【标题】"flex+as3麻将游戏源码"是一个基于Adobe Flex和ActionScript 3(AS3)开发的麻将游戏项目。Flex是一个开源框架,主要用于构建富互联网应用程序(RIA),而AS3是ActionScript的第三版,是Flash平台的主要编程...

    Flex as3绘制的3D饼图

    Flex as3绘制的3D饼图,完全手动绘制,很多样式没有提供接口,需要在组件内源码中修改,存在的缺陷是饼图的标签位置计算的不合理,如果有人愿意帮忙修改,非常感激,希望能将3D饼图做到完美,更希望高手帮忙改改!

    Flex 3D云标签

    6. **数据绑定**:如果标签的内容来源于数据源,那么源代码中会有数据绑定的实现,将数据模型与视图(标签)关联起来,实现数据驱动的动态更新。 学习和研究Flex 3D云标签的源代码可以帮助你深入理解3D图形编程、...

    Flex AS3语法学习

    该教程简单明了,适合有程序编写基础的人学习。

    Flex利用as3xls导入excel数据表

    标题中的“Flex利用as3xls导入excel数据表”是指在Adobe Flex开发中,使用AS3XLS库来处理和导入Microsoft Excel(.xls)文件的数据。Flex是一种基于ActionScript 3(AS3)的开源框架,用于构建富互联网应用程序(RIA...

Global site tag (gtag.js) - Google Analytics