- 浏览: 1460870 次
- 性别:
- 来自: 苏州
-
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
数据绑定是将一个对象中的数据同另一个对象中的数据联系在一起的过程。数据绑定为在应用的不同层之间传递数据提供了便捷方法。数据绑定需要一个源属性,一个目的属性,以及用于表明何时将数据从源属性拷贝到目的属性的触发事件。当源属性变化时,对象发出触发事件。
Adobe Flex提供三种方法用于指定数据绑定:MXML中的大括号({})语法,MXML中的<mx:Binding>标记,以及ActionScript中的BindingUtils的系列方法。下面的例子使用大括号({})语法来展示一个Text控件,该控件的数据来自于TextInput控件Text属性:
<?xml version="1.0"?>
<!-- binding/BasicBinding.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:TextInput id="myTI" text="Enter text here"/>
<mx:Text id="myText" text="{myTI.text}"/>
</mx:Application>
大括号中所括的属性名就是绑定表达式中的源属性。当源属性的值放生变化时,Flex把源属性myTI.text的当前值拷贝到目的属性
数据绑定表达式中可以将ActionScript代码以及E4X表达式作为一部分包含进来,如下例所示:
<?xml version="1.0"?>
<!-- binding/BasicBindingWithAS.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:TextInput id="myTI"/>
<mx:Text id="myText" text="{myTI.text.toUpperCase()}"/>
</mx:Application>
在这个例子中,当Flex将源属性的数据拷贝到目的属性时,使用ActionScript的String.toUpperCase()方法将源属性中的文本转化为大写形式。关于更多的信息参看:在数据绑定中使用ActionScript以及在数据绑定中使用E4X表达式。
可以用<mx:Binding>标记作为大括号语法的替代方法。在使用<mx:Binding>时,要为<mx:Binding>标记提供一个源属性作为标记的source属性以及提供一个目的属性作为标记的destination属性。下面的例子使用<mx:Binding>标记定义了一个从TextInput控件到Text控件的数据绑定:
<?xml version="1.0"?>
<!-- binding/BasicBindingMXML.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:TextInput id="myTI"/>
<mx:Text id="myText"/>
<mx:Binding source="myTI.text" destination="myText.text"/>
</mx:Application>
同大括号语法相比,用<mx:Binding>标记能够将视图(用户界面)同模型完全分离。<mx:Binding>标记也能实现将多个源属性绑定到一个相同的目的属性,这是因为能够定义多个具有相同的destination属性的<mx:Binding>标记。例子请参照“绑定多个源属性到一个目的属性”。
大括号语法和<mx:Binding>标记都能在编译期定义数据绑定,而使用ActionScript代码则可以在运行期定义数据绑定,如下例所示:
<?xml version="1.0"?>
<!-- binding/BasicBindingAS.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.binding.utils.*;
// Define data binding.
public function initBindingHandler():void {
BindingUtils.bindProperty(myText, "text", myTI, "text");
}
]]>
</mx:Script>
<mx:TextInput id="myTI"/>
<mx:Text id="myText" preinitialize="initBindingHandler();"/>
</mx:Application>
在这个例子中,使用静态方法BindingUtils.bindProperty()来定义数据绑定,也可以使用BindingUtils.bindSetter()方法定义一个到函数的绑定。有关更多的信息,参见“在ActionScript定义数据绑定”。
注意,在这个例中使用preinitialize事件去定义数据绑定。这是必须的,因为Flex在应用启动过程中,当源对象发出initialize事件时触发所有的数据绑定,有关更详细的信息参照“数据绑定何时发生”。
数据绑定发生在以下情况:
<!--[if !supportLists]-->1. <!--[endif]-->由于源已经被改变,数据绑定源发出一个事件,这个事件可以在应用执行的任何时间发出。这个事件触发Flex将源属性的值拷贝到目的属性。
<!--[if !supportLists]-->2. <!--[endif]-->在应用启动过程中,当源对象发出initialize事件时,所有数据绑定都被一次性地被触发以初始化目的属性。
要想监控数据绑定,可以定义一个绑定观察者在数据绑定发生时触发事件处理器。更多信息请参照“定义绑定观察者”。
UIComponent类的executeBindings()方法执行该UIComponent作为目的对象上的所有绑定。所有的容器和控件,以及Repeater组件都从UIComponent类继承。容器和Repeater类的executeChildBindings()方法执行其中作为目的对象的子对象上的所有绑定。所有的容器都从Container类继承。
这些方法在期望的绑定没有发生时提供了一种执行绑定的方法。通过增加一条代码,比如对executeChildBindings()方法的调用,就可以在完成一个变化而没有使绑定执行的时候来更新用户界面。但是只有在确保绑定没有自动发生时才能使用executeBindings()方法。
可以把对象的所有属性都作为数据绑定表达式的目的属性,但要想使一个属性成为数据绑定表达式的源,那么源对象必须被实现为支持数据绑定。这意味着这个对象在属性值发生变化时要发出一个事件以触发绑定。在本文中,可以被用来作为数据绑定源的属性被称为“可绑定的(bindable)”属性。
在Adobe Flex Language Reference中,可以被当作绑定表达式的源的属性包括以下的描述语句:
"This property can be used as the source for data binding."
关于创建可以被用数据绑定表达式源的属性的更多信息参见“创建用作数据绑定源的属性”。
通过定义一个只有getter方法而没有setter方法来定义个一个只读属性作为数据绑定表达式的源时,Flex只在应用启动时执行一次数据绑定。
可以自动用一个静态常量作为数据绑定表达式的源。Flex只在应用启动时执行一次数据绑定。
当创建一个用于绑定表达式源的属性,那么在源属性值发生变化时Flex就能自动将值拷贝到所有的目的属性。为了让Flex执行拷贝,必须使用[Bindable]标记来向Flex注册这个属性。
The [Bindable] 元数据标记有以下语法:
[Bindable]
[Bindable(event="eventname")]
如果忽略了事件名称,Flex自动地创建一个名为propertyChange的事件,并且在属性发生变化时,由Flex发出这个事件以触发所有以这个属性作为源的数据绑定。
如果你指定了事件名称,那么在源属性发生变化时你就要自己负责发出这个事件。关于更多有关[Bindable]元数据标记的信息和例子参见“使用Bindable元数据标记”。下面的例子作了一个maxFontSize属性和一个minFontSize属性变量可用于数据绑定表达式的源:
<?xml version="1.0"?>
<!-- binding/FontPropertyBinding.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
// Define public vars for tracking font size.
[Bindable]
public var maxFontSize:Number = 15;
[Bindable]
public var minFontSize:Number = 5;
]]>
</mx:Script>
<mx:Text text="{maxFontSize}"/>
<mx:Text text="{minFontSize}"/>
<mx:Button click="maxFontSize=20; minFontSize=10;"/>
</mx:Application>
当点击Button按钮,就会更新maxFontSize和minFontSize属性,并且触发了数据绑定去更新文本控件。
注意:如果忽略的[Bindable]元数据标记,Flex编译器会发出一个警告语句来说明绑定机制没有检查那个属性的变化。
数据绑定的用途:
数据绑定通常包括以下用途:
<!--[if !supportLists]-->§ <!--[endif]-->将用户界面上的控件属性绑定到另外一个用界面控件上。
<!--[if !supportLists]-->§ <!--[endif]-->将用户界面上的控件属性绑定到中间层的数据模型,以及将那个数据模型上域(field)绑定到数据服务请求上(一个三层系统)
<!--[if !supportLists]-->§ <!--[endif]-->将用户界面上的控件属性绑定到数据服务请求。
<!--[if !supportLists]-->§ <!--[endif]-->将数据服务请求结果绑定到用户界面控件的属性上。
<!--[if !supportLists]-->§ <!--[endif]-->将数据请求服务结果绑定到一个中间层数据模型上,以及将数据模型的域绑定到用户界面上。更多有关数据模型的信息见“Storing Data”
<!--[if !supportLists]-->§ <!--[endif]-->将ArrayCollection 或者XMLListCollection对象绑定到基于列表(List-based)的控件的dataProvider属性上。
<!--[if !supportLists]-->§ <!--[endif]-->将复杂属性的一个单独部分绑定到用户界面控件上。一个例子就是“主-从”式的场景,在这个场景中,点击列表控件的一个条目,就在其它几个控件中显示数据。
<!--[if !supportLists]-->§ <!--[endif]-->通过在绑定表达式中使用ECMAScript for XML (E4X)表达式将XML数据绑定到用户界面的控件上。
尽管数据绑定是一个非常强大的机制,但它不适合所有的情况。比如,有一个很复杂的用户界面,这个界面的某个部分必须按照严格的先后次序来更新,这种情下,更适合使用一个按次序赋值的方法。另外,绑定在每次属性发生变化时执行,如果程序中只在某些特定的时候才需要被告知属性变化,那么使用绑定机制并不是最佳方案。
发表评论
-
Apache FlexJS 0.0.1 和 Apache Flex FalconJX 0.0.1发布
2015-11-01 19:44 566原文地址:http://note.sdo.com/u/634 ... -
Flash Catalyst 常用键盘快捷键
2011-03-28 15:38 1078转自:http://www.riameeting.com/ ... -
8款很实用的Actionscript写的位图(BitMap)操作类
2011-03-24 12:09 1960AS3 Scale9 Bitmap ... -
VC++ 项目中使用 FLEX
2011-03-24 09:13 19621, http://hi.baidu.com/qinpc/ ... -
flex应用开发/flash应用开发 代做flash作业/flex作业
2011-01-09 20:37 347专业承接flex应用开发/flash应用开发 ... -
脑袋里的秘密,输入姓名就可以知道你在想什么! flex版
2010-12-29 11:34 2560输入名字就可以知道她/他在想什么的工具~~ -
一个flex聊天机器人
2010-12-18 10:42 1668无聊之下所作,供大伙娱乐,随边聊聊。。。 -
Flex:基于Flex-config.xml的命令行编译
2009-07-01 09:33 1913关键字: Flex Flex2 编译 mxmlc ... -
抽出flash与java 用AMF交互代码
2009-06-30 15:09 3673最近做的一个java 与flash通讯的项目,由于项目框 ... -
BulkLoader类和PV3D
2009-06-26 17:02 1983AS3取消了movieclip的loader类,所以加 ... -
使用 Flex Builder 3.x 分析工具 Profile
2009-06-25 11:26 3431前言 关于分析工具 (原文见Flex Builder ... -
AMF3+JAVA的调用范例
2009-06-24 17:44 2575[AS3]AMF3+JAVA的调用范例 amf是Ad ... -
Flex 程序性能测试
2009-06-24 16:02 1965Flex 程序性能测试 作者:叶晖俊 yehui ... -
Flex RemoteObject类参考
2009-06-19 11:39 1258<mx:RemoteObject>标记 ... -
flex画的菱形
2009-05-11 16:19 3478package com { impo ... -
理解 Flex itemRenderer - 第 4 部分: 状态和过渡
2009-05-08 09:23 1730itemRenderer 最擅长与应用 ... -
理解 Flex itemRenderer - 第 5 部分: 效率
2009-05-08 09:21 1784如果您要显示大量 itemRenderer-无论在 Dat ... -
VO to XML converter
2009-05-04 09:00 1167private function convertToXM ... -
Flex全屏
2008-09-26 11:11 1806private function goFullScreen( ... -
ExternalInterface在Firefox下出错的bug
2008-09-16 09:28 3197使用Document Class为避免命名空间冲突,通常会取消 ...
相关推荐
在Flex开发中,数据绑定(Data Binding)是一种强大的机制,它允许UI组件的状态与应用程序的数据模型之间自动同步。数据绑定的原理是通过监听数据源的变化,并自动更新与之绑定的UI组件,反之亦然,从而简化了代码并...
Flex数据绑定是Adobe Flex框架中的核心特性之一,它允许开发者将UI组件的显示状态与应用程序的数据模型紧密关联,实现数据的动态更新。这份名为“FLEX数据绑定专题”的PDF文档,很可能深入探讨了这一主题,提供了...
### FLEX数据绑定四种方式详解 #### 一、概述 数据绑定是现代应用程序开发中一个重要的概念和技术。在Flex框架中,数据绑定被广泛应用来连接数据源与用户界面(UI)元素,使得数据能够实时更新并反映到界面上。本文将...
在Flex企业应用开发中,数据绑定是连接UI组件与数据模型的重要机制,使得视图能够自动反映模型的变化,反之亦然。这篇笔记主要探讨的是如何在Flex中实现数据绑定,以及其在实际应用中的作用。 数据绑定是Flex框架的...
在Flex开发中,页面跳转和数据绑定是两个核心概念,它们对于构建动态且交互性强的应用至关重要。让我们分别深入探讨这两个主题。 首先,Flex页面跳转。在Flex中,有多种方式来实现场景间的切换: 1. **ViewStack...
### Flex 数据绑定详解 #### 一、数据绑定概念与重要性 数据绑定是Flex和Adobe AIR应用程序开发中的关键概念之一,其主要目的是实现不同对象之间的数据传输与同步更新。通过数据绑定,开发者能够轻松地在用户界面...
在Flex开发中,数据绑定是一项核心特性,它允许开发者轻松地将用户界面组件与应用程序的数据模型关联起来。本文将深入探讨“FLEX数据绑定专题”,包括其多种实现方式以及如何结合Java作为后端来实现数据交换。 首先...
Flex Bind数据绑定是Adobe Flex应用程序开发中的核心特性,它允许开发者在用户界面组件和应用程序模型之间建立动态连接,实现数据的自动同步。这种强大的功能极大地简化了编程逻辑,特别是处理用户交互和数据更新时...
Flex数据绑定是Adobe Flex开发中的核心特性之一,它允许开发者将UI组件的属性与应用程序的数据模型直接关联。在本示例中,我们关注的是如何在Flex中使用数据绑定技术来操作DataGrid组件,这是一个用于展示表格数据的...
在提供的压缩包文件"DataBindLab"中,可能包含了相关的示例代码或实验,帮助读者更好地理解和实践FLEX数据绑定。通过实际操作和分析这些实验,可以深化对数据绑定的理解,并将其应用到自己的项目中。建议读者结合...
总的来说,Flex 3 的数据绑定是一种强大的机制,它简化了应用程序中数据流的管理。通过 MXML 或 ActionScript,开发者可以选择最适合其需求的方式来实现数据绑定,从而提高代码的可读性和可维护性。无论是简单的属性...
本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们理解Flex Datagrid的基本概念。Flex Datagrid是一个灵活的数据呈现控件,能够处理各种数据源,包括ArrayCollection、...
通过上述分析,我们可以看出Flex中的数据绑定非常简洁高效,能够帮助开发者快速构建动态且响应式的用户界面。本例中的数据绑定机制展示了如何通过简单的方式实现滑块控制画布缩放效果的功能,对于初学者来说是非常好...
这个名为"flex帮助文档--(flex学习文档)"的压缩包文件包含了关于Flex的详细学习资料,尤其是针对初学者或者希望深入理解Flex的开发者。 1. **Flex的基本概念** Flex是一个基于MXML和ActionScript的开源框架,...
Flex.3数据绑定(2)Flex.3数据绑定(2)Flex.3数据绑定(2)Flex.3数据绑定(2)
Flex 数据绑定是Adobe Flex框架中的一个核心特性,它允许开发者创建动态、响应式的用户界面,使得数据模型的变化能够实时反映到视图上,反之亦然。这种机制大大简化了UI与后台数据同步的过程,减少了手动更新UI的...
6. **数据绑定**: Flex支持数据绑定,使得UI组件的状态可以直接与后台数据模型关联,实现数据驱动的开发模式。 7. **事件处理**: 通过监听和响应事件,实现用户与应用的交互。 8. **Flex应用生命周期**: 包括初始化...
### Flex高级数据绑定实例——界面语言切换 #### 概述 在Flex开发中,实现界面的多语言切换是一项常见的需求。本示例通过一个具体的代码片段来展示如何使用Flex中的高级数据绑定技术来实现这一功能。该示例不仅...
6. **数据绑定**:Flex的数据绑定功能允许UI组件的状态自动反映模型数据的变化,减少了手动更新界面的代码量,实现了数据驱动的开发模式。 7. **事件处理**:在Flex中,事件是组件间通信的主要方式。通过监听和响应...