Flex 元数据标签
1、[ArrayElementType]
使用ArrayElementType元数据标签可以让你定义数组元素的数据类型。
使用ArrayElementType元数据标签可以让你定义数组元素的数据类型。
程序代码:
[ArrayElementType("String")]
public var arrayOfStrings:Array;
public var arrayOfStrings:Array;
[ArrayElementType("Number")]
public var arrayOfNumbers:Array;
public var arrayOfNumbers:Array;
[ArrayElementType("mx.core.UIComponent")]
public var arrayOfUIComponents:Array;
public var arrayOfUIComponents:Array;
2、[Bindable]
Bindable可以用来绑定简单数据类型、类、复杂数据类型以及函数。绑定数据的时候,你必须先使用元数据标签定义一下数据。
A simple use of [Bindable]
<fx:Script>
<![CDATA[
[Bindable]
private var me:String="Rich Tretola";
]]>
</fx:Script>
<mx:Panel title="Simple Binding" width="500" height="90"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="horizontal">
<mx:Label text="{me}"/>
</mx:Panel>
<![CDATA[
[Bindable]
private var me:String="Rich Tretola";
]]>
</fx:Script>
<mx:Panel title="Simple Binding" width="500" height="90"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="horizontal">
<mx:Label text="{me}"/>
</mx:Panel>
Bindable也可以用来绑定到事件
Using [Bindable] with getters and setters
<fx:Script>
<![CDATA[
private var _phoneNumber:String = " ";
// Bind getter function to phoneNumberChanged event
[Bindable(event="phoneNumberChanged")]
public function get phoneNumber():String
{
return _phoneNumber;
}
// Setter method.
public function set phoneNumber(value:String):void
{
if (value.length<10)
{
_phoneNumber = value;
}
else
{
_phoneNumber = phoneFormatter.format(value);
}
// Create and dispatch event
var eventObj:Event = new Event("phoneNumberChanged");
dispatchEvent(eventObj);
}
]]>
</fx:Script>
<mx:PhoneFormatter id="phoneFormatter"
formatString="(###) ###-####" validPatternChars="#-() " />
<mx:Panel title="Bind with Getters and Setters" width="500" height="90"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="horizontal">
<mx:TextInput id="ti1" change="phoneNumber=ti1.text" maxChars="10" restrict="0-9"/>
<mx:TextInput id="ti2" text="{phoneNumber}"/>
</mx:Panel>
3、[DefaultProperty]
DefaultProperty元数据标签用来将一个单一属性设定为某个类的默认属性。它允许在一个容器标签内设定属性,而不用定义属性的名字。
DefaultProperty元数据标签用来将一个单一属性设定为某个类的默认属性。它允许在一个容器标签内设定属性,而不用定义属性的名字。
package comps
{
import mx.controls.Button;
[DefaultProperty("label")]
public class MyButton extends Button
{
}
}
{
import mx.controls.Button;
[DefaultProperty("label")]
public class MyButton extends Button
{
}
}
Using the MyButton class wih [DefaultProperty]
<comps:MyButton>
<mx:String>Test</mx:String>
</comps:MyButton>
<mx:String>Test</mx:String>
</comps:MyButton>
4、[Embed]
Embed元数据标签用来导入图片到程序。可以通过两种方式使用Embed。你可以将图片嵌入到ActionScript中并将其指派给一个变量,或者你也可以将图片直接指派给组件的属性。
Embed元数据标签用来导入图片到程序。可以通过两种方式使用Embed。你可以将图片嵌入到ActionScript中并将其指派给一个变量,或者你也可以将图片直接指派给组件的属性。
方式一:
[Embed(source="myIcon.gif")]
[Bindable]
public var myIcon:Class;
[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}"/>
方式二:
<mx:Button label="Icon Button 1" icon="@Embed(source=myIcon.gif')"/>
<mx:Button label="Icon Button 1" icon="@Embed(source=myIcon.gif')"/>
<mx:Button label="Icon Button 2" icon="@Embed(source=myIcon.gif')"/>
上面这两个例子产生的结果是一样的。创建myIcon类的好处是,它在一个类中只定义一次并可以绑定到程序中的多个组件。
5、[Event]
Event元数据标签用来声明那些被自定义类分派的事件。将这个元数据标签添加到类定义中之后,你就可以在MXML标签中添加事件处理函数来初始化该自定义类。
Event元数据标签用来声明那些被自定义类分派的事件。将这个元数据标签添加到类定义中之后,你就可以在MXML标签中添加事件处理函数来初始化该自定义类。
Custom ButtonLabel class using [Event]
package comps
{
import mx.controls.Button;
import flash.events.Event;
// Define the custom event
[Event(name="labelChanged", type="flash.events.Event")]
{
import mx.controls.Button;
import flash.events.Event;
// Define the custom event
[Event(name="labelChanged", type="flash.events.Event")]
public class ButtonLabel extends Button
{
// property to hold label value
private var _myLabel:String;
// public setter method
public function set myLabel(s:String):void
{
_myLabel = s;
this.label = s;
// Create and dispatch custom event
var eventObj:Event = new Event("labelChanged");
dispatchEvent(eventObj);
}
}
}
{
// property to hold label value
private var _myLabel:String;
// public setter method
public function set myLabel(s:String):void
{
_myLabel = s;
this.label = s;
// Create and dispatch custom event
var eventObj:Event = new Event("labelChanged");
dispatchEvent(eventObj);
}
}
}
Using the ButtonLabel class with the labelChanged [Event]
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import flash.events.Event;
// method to handle custom event
public function labelChanged(eventObj:Event):void
{
myTA.text= myTA.text + "\n"+ eventObj.target.label;
myTA.verticalScrollPosition = myTA.verticalScrollPosition +20;
}
]]>
</fx:Script>
<mx:Panel title="Event Sample" width="500" height="275"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="absolute">
<mx:TextInput id="buttonLabelTI"
change="myButton.myLabel=buttonLabelTI.text" x="10" y="9"/>
<!--Instantiate custom class and define method to handle label- Changed event-->
<comps:ButtonLabel id="myButton" labelChanged="labelChanged(event);" x="10" y="39"/>
<mx:TextArea id="myTA" width="200" height="200" x="249" y="10"/>
</mx:Panel>
6、[Effect]
Effect元数据标签用来定义一个自定义效果,当某个事件发生的时候该效果会被分派。
Add the Effect metadata tag
...
// Define the custom event
[Event(name="labelChanged", type="flash.events.Event")]
[Effect(name="labelChangedEffect", event="labelChanged")]
public class ButtonLabel extends Button {
...
...
// Define the custom event
[Event(name="labelChanged", type="flash.events.Event")]
[Effect(name="labelChangedEffect", event="labelChanged")]
public class ButtonLabel extends Button {
...
Add labelChangedEffect to the Component
Instantiation MXML Tag
<comps:ButtonLabel id="myButton" labelChanged="labelChanged(event);"
labelChangedEffect="myEffect" x="10" y="39"/>
Instantiation MXML Tag
<comps:ButtonLabel id="myButton" labelChanged="labelChanged(event);"
labelChangedEffect="myEffect" x="10" y="39"/>
7、[IconFile]
IconFile是用来定义一个jpg,gif或者png文件的文件名的,它在你的自定义类中作为图标来使用。[Embed]元数据标签可以用来嵌入图片、SWF文件、音乐文件以及视频文件等,而IconFile则只是用来嵌入用来作为自定义类图标的文件。下面是一个IconFile的例子:
[IconFile("icon.png")]
public class CustomButton extends Button
{
}
IconFile是用来定义一个jpg,gif或者png文件的文件名的,它在你的自定义类中作为图标来使用。[Embed]元数据标签可以用来嵌入图片、SWF文件、音乐文件以及视频文件等,而IconFile则只是用来嵌入用来作为自定义类图标的文件。下面是一个IconFile的例子:
[IconFile("icon.png")]
public class CustomButton extends Button
{
}
8、[Inspectable]
Inspectable元数据标签可以用来定义那些能在代码提示和属性检测器(property inspector)中显示的属性。
Inspectable元数据标签可以用来定义那些能在代码提示和属性检测器(property inspector)中显示的属性。
<fx:Script>
<![CDATA[
[Inspectable(defaultValue="Visa",
enumeration="Visa,Mastercard,Discover,American Express",
category="Credit Card", type="String")]
public var ccType:String;
]]>
</fx:Script>
</mx:HBox>
<![CDATA[
[Inspectable(defaultValue="Visa",
enumeration="Visa,Mastercard,Discover,American Express",
category="Credit Card", type="String")]
public var ccType:String;
]]>
</fx:Script>
</mx:HBox>
<comps:MyComponent ccType=""/>
9、[InstanceType]
当在一个模板对象中声明一个像IDeferredInstance这样的变量时,InstanceType元数据标签就用来声明对象的类型。
用法:
[InstanceType("package.className")]
10、[NonCommittingChangeEvent]
NonCommittingChangeEvent元数据标签在某个特定事件发生的时候可以防止变量在事件发生的过程中被更改。
Using [NonCommittingChangeEvent]
<fx:Script>
<![CDATA[
import flash.events.Event;
private var eventObj:Event;
[Bindable(event="triggerBinding")]
[NonCommittingChangeEvent("change")]
private var s:String;
private function triggerBinding():void
{
eventObj = new Event("triggerBinding");
dispatchEvent(eventObj);
}
]]>
</fx:Script>
<mx:Panel title="NonCommittingChangeEvent Sample" width="500" height="90"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="horizontal">
<mx:TextInput id="ti1" change="s=ti1.text" enter="triggerBinding()"/>
<mx:TextInput id="ti2" text="{s}" />
<![CDATA[
import flash.events.Event;
private var eventObj:Event;
[Bindable(event="triggerBinding")]
[NonCommittingChangeEvent("change")]
private var s:String;
private function triggerBinding():void
{
eventObj = new Event("triggerBinding");
dispatchEvent(eventObj);
}
]]>
</fx:Script>
<mx:Panel title="NonCommittingChangeEvent Sample" width="500" height="90"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="horizontal">
<mx:TextInput id="ti1" change="s=ti1.text" enter="triggerBinding()"/>
<mx:TextInput id="ti2" text="{s}" />
</mx:Panel>
11、[RemoteClass]
RemoteClass 可以用来将一个ActionScript类绑定到一个Java类或一个ColdFusion CFC。这样做可以自动转换数据类型。下面的例子将包com.mydomain中的名为MyClass的ActionScript类绑定到了同一个包中名为MyClass的Java类:
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;
{
[Bindable]
[RemoteClass(alias="com.mydomain.MyClass")]
public class MyClass
{
public var id:int;
public var myText:String;
}
}
}
12、[Style]
Style元数据标签用来为组件定义自定义样式属性的。只需要简单地将Sytle元数据标签添加到类的定义当然,然后就可以使用getSytle方法获取它的值了。
Custom Class CustomCircle using [Style] tags
package comps
{
import mx.core.UIComponent;
[Style(name="borderColor",type="uint",format="Color",inherit="no")]
[Style(name="fillColor",type="uint",format="Color",inherit="no")]
public class CustomCircle extends UIComponent
{
public function CustomCircle()
{
super();
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
graphics.lineStyle(1, getStyle("borderColor"), 1.0);
graphics.beginFill(getStyle("fillColor"),1.0);
graphics.drawEllipse(0,0,100,100);
}
}
}
package comps
{
import mx.core.UIComponent;
[Style(name="borderColor",type="uint",format="Color",inherit="no")]
[Style(name="fillColor",type="uint",format="Color",inherit="no")]
public class CustomCircle extends UIComponent
{
public function CustomCircle()
{
super();
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
graphics.lineStyle(1, getStyle("borderColor"), 1.0);
graphics.beginFill(getStyle("fillColor"),1.0);
graphics.drawEllipse(0,0,100,100);
}
}
}
Using CustomCircle and assigning custom style properties
<mx:Panel title="Style Sample" width="200" height="200"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom=" 10" layout="horizontal">
<comps:CustomCircle borderColor="#000000" fillColor="#FF0000" />
</mx:Panel>
标签 | 描述 |
[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六大要素
2011-05-08 12:56 869在学习Flex应用程序的 ... -
Flex4之将Sprite控件添加到FLEX UI中
2011-05-08 12:54 1407在Flex的帮助文档里,有很多例子都是扩展Sprite类的。如 ... -
Flex4之关于Embed外部资源的使用方法
2011-05-07 20:56 1048Flex软件中经常需要 ... -
Flex之使用ActionScript构造组件
2011-05-07 20:04 944因为是专门针对ActionScript来写的篇章,所以,对于A ... -
Flex获取RGB的值,R、G、B
2011-05-06 20:35 1024<?xml version="1.0" ... -
Flex自制简单菜单
2011-05-06 20:22 988<?xml version="1.0" ... -
Flex4之为ToolTip设置旋转特效及字体
2011-05-05 21:04 1796<?xml version="1.0" ... -
Flex的Alert中加入超链接
2011-05-05 20:57 1253<?xml version="1.0" ... -
FLEX4之内存释放优化原则
2011-05-05 13:28 7011. 被删除对象在外部的所有引用一定要被删除干净才能被系统 ... -
Flex4之简易MP3播放器
2011-05-03 20:55 1129<?xml version="1.0" ... -
Flex4之DataGrid示例【客户端和服务器端]
2011-05-03 19:27 1740由于我的DataGrid与JAVA后 ... -
Flex4表单验证
2011-05-01 22:34 2037这里主要讲Combox的验证。其他几个略带说说。 ... -
Flex4之与后台服务器通信方式:URLRequest+URLLoader【JAVA方式】
2011-04-21 20:16 1930URLRequest是ActionScript和服务端通信的最 ... -
Flex4 事件详解
2011-04-17 16:10 1013第一、Flex事件简介 ... -
向Tree空间添加删除XML数据节点_Flex4
2011-03-31 20:50 2104Flex4控件例程: 基于Http ...
相关推荐
### Flex 4 RIA 开发详解关键知识点 #### 一、Flex 4 技术概览 Flex是由Adobe公司推出的,旨在开发和部署富互联网应用程序(Rich Internet Applications, RIAs)的一系列工具和技术集合。Flex提供了现代化的标准...
4. **Data Management Components (DMC)**:Flex SDK包含一系列数据管理组件,如ArrayCollection、XMLListCollection等,它们用于在客户端处理和展示数据。数据绑定是Flex的一个重要特性,它使得UI组件可以自动更新...
FLEX 3.0程序开发技术详解(下).pdf
Flex 4 开发详解主要涉及Adobe公司的Flex技术,这是一种用于构建富互联网应用程序(RIAs)的工具和技术。Flex提供了一个现代、基于标准的编程模型,支持公共模板设计、客户端运行环境、编程模型、开发模型以及高级...
Flex 中的元数据标签的用法和详细介绍
《Flex完全手册源代码详解4》是一本深入探讨Adobe Flex技术的专业书籍,其核心内容是通过源代码解析来帮助读者理解和掌握Flex编程的关键概念和技术。这本书可能是系列的一部分,旨在逐步深化对Flex的理解,特别是...
4. **MXML**:Flex的声明式语言,用于描述用户界面的结构和外观,与ActionScript相结合,可以实现数据驱动的UI设计。 5. **数据绑定**:Flex 3中的一个重要特性,允许UI组件的状态与后台数据模型自动同步,简化了...
Flex 4.0 RIA开发详解(第2版) Flex 4.0 RIA开发详解(第2版) Flex 4.0 RIA开发详解(第2版)
#### 二、具体元数据标签详解 ##### 1. **ArrayElementType** `ArrayElementType`元数据标签用于指定数组元素的具体类型。例如: ```as3 [ArrayElementType("String")] public var arrayOfStrings:Array; ``` 该...
flex完全手册源代码详解3希望对大家学习有帮住
flex原理和全属性详解flex 是 flexible Box的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局
Flex 4 RIA 开发详解主要涵盖了Adobe公司的Flex技术,这是一种用于构建富互联网应用程序(RIAs)的工具和技术。Flex旨在提供一个现代的、基于标准的编程模型,支持公共模板设计、客户端运行环境、编程模型、开发模型...
AMF(Action Message Format)是Adobe开发的一种二进制数据交换格式,主要用于提高Flex和服务器之间的通信效率。本教程将详细介绍如何抓取使用AMF协议的Flex页面数据,并涉及模拟登录和页面抓取的相关知识。 1. **...
### Flex 2 中的元数据标签 在Flex 2中,元数据标签是用于提供类、方法或属性的额外信息的一种特殊标记。这些标签通常位于类定义或成员声明之前,并被ActionScript编译器用来控制类的行为或者为开发工具提供有关...
4. **Flex SDK**: Flex Software Development Kit提供了构建Flex应用所需的所有工具,包括编译器、Flex Builder(IDE)、文档和示例代码。开发者可以使用SDK中的mxmlc命令行编译器将MXML和ActionScript代码编译为...
在本主题"Flex ActionScript 3.0交互式开发详解源码(四)"中,我们将深入探讨这个强大的开发工具和技术。 一、ActionScript 3.0基础 ActionScript 3.0相较于之前的版本,有了显著的性能提升和更严谨的类型系统。它...
《Flex 3 RIA开发详解与精深实践》是一本由杨占坡、杨铭和翁颖三位专家共同编著的书籍,专注于介绍Adobe Flex 3技术在富互联网应用程序(Rich Internet Application,简称RIA)开发中的应用。Flex是Adobe公司推出的...
4. **企业级的特征**:Flex 提供了安全的数据传输和强大的数据管理,适合构建大型企业级应用,如数据可视化、实时协作工具等。 5. **消除页面加载**:通过使用数据缓存和异步通信,Flex 应用可以减少对服务器的依赖...
Flex 3D标签云是一种在Flex平台上创建动态、立体效果的标签展示技术,它通过将传统的二维标签转换为三维空间中的旋转元素,为用户提供了更直观、更具视觉吸引力的交互体验。这种技术常用于网站、应用程序或者数据...
这份"Flex_4.0_RIA开发详解讲义"显然是一个详细的教程,旨在帮助开发者深入理解Flex 4.0平台的各个方面。以下是基于这个主题的详细知识点讲解: 1. **Flex 4.0简介**:Flex 4.0,又称为Gumbo,是Flex框架的重大更新...