`
longgangbai
  • 浏览: 7332474 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex 数据绑定

阅读更多

9.2.1 函数和类级别的绑定

[Bindable]标签打使用:
  • 变量级别的绑定,[Bindabl(event="propChange")]  如果自己指定事件,必须自己写代码派发事件,否则不会触发绑定行为。
  • 在函数前定义,必须是通过setter和getter方式定义,必须写在set前面。Num相当于属性:
[Bindable]
public function set Num(n:Number):void{...}
public function get Num():void{...}
  • 在一个公有类的定义前使用,这样这个类的所有公有变量,set、get方式定义的函数,都可以用于绑定,这就是对象级别的绑定。


9.2.2 使用ActionScript 来定义绑定

BindingUtils 位于mx.binding.utils 包中:
  • bindProperty(  用来进行属性级别的绑定
  site:Object,  表示目标对象
  prop:String,  目标对象的公有属性名,当值发生变化时,派发绑定事件
  host:Object,   数据源对象
  chain:Object,  数据源对象被绑定的属性名,或通过getter定义的函数名
  commitOnly:Boolean=false  默认false,表示要发生值的到改变时就会引发绑定行为。true:表示对对象有写操作时仍然会派发事件,但不会激发绑定行为,只有确认了改变的数据,并派发事件valueCommit 后,绑定动作才开始执行。
)
  • bindSetter(  专门用于setter 和 getter 函数的绑定
  setter:Function,  函数,用来改变数据源对象的值,可以直接在代码中声明一个函数体
  host:Object,  数据源对象
  chain:Object,  数据源对象被绑定的属性名,或通过getter定义的函数名
  CommitOnly:Boolean=false  默认false。同上。
)

ChangeWatcher 对象 位于mx.binding.utils 包中,侦听绑定的动作:
var cw:ChangeWatcher = ChangeWatcher.watch(tip_txt, "text", handler);
cw.unwatch(); //停止监听
watch(
  host:Object,  数据源对象
  chain:Object,  数据源对象被绑定的属性名,或通过get定义的函数
  handler:Function,  监听函数
  commitOnly:Boolean=false  默认false,表示只要发生值的改变时就会引发绑定行为,同上
)


9.2.3 数据绑定中的特例

在绑定中出现问题,一般有以下情况:
  • 数据源没有被更改
  • 绑定事件没有被派发出去
  • 目标对象没有收到资源,也就无法更新

Object 类型作为所有类型的父类,它不完全支持数据绑定。
Object 类型属于动态类型,可以随意的向里面添加任何属性,而且属性的类型也是任意的。
如果要对Object类型绑定,必须使用 mx.utils 包中的 ObjectProxy 对象:
[Bindable]
internal var info:Object;
internal var function ininApp():void{
  //定义info 的属性值
  info = new ObjectProxy();
  info.label = "label";
  BindingUtils.bindProperty(tip_txt, "text", info, "label"); //设置绑定
}
Proxy 是代理的意思,ObjectProxy 就相当于 Object 的代理人,提供了数据绑定的接口,任何属性发生变化时,都会派发事件。

ArrayCollection 是增强性的 Array,依然是用数组来存储数据,但支持多种排序、属性绑定等,适合用来处理复杂数据。
setItemAt(item:Object, index:int);  //将元素插入到数组指定的位置,如果存在则替换
数组类型的对象,其子元素是无法作为数据源绑定的。
在as中定义一个数组,类型是ArrayCollection,当一个一个被push后,发现出现很多警告
警告信息:
warning: unable to bind to property 'nyr' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'num_date' on class 'Object' (class is not an IEventDispatcher)
该如何避免此问题?
Bindable]  
internal var info:Object;  
internal var function ininApp():void{  
 //定义info 的属性值  
 info = new ObjectProxy();  
 info.label = "label";  
 BindingUtils.bindProperty(tip_txt, "text", info, "label"); //设置绑定  
}  

[Bindable]
internal var info:Object;
internal var function ininApp():void{
 //定义info 的属性值
 info = new ObjectProxy();
 info.label = "label";
 BindingUtils.bindProperty(tip_txt, "text", info, "label"); //设置绑定
}

Proxy 是代理的意思,ObjectProxy 就相当于 Object 的代理人,提供了数据绑定的接口,任何属性发生变化时,都会派发事件。

ArrayCollection 是增强性的 Array,依然是用数组来存储数据,但支持多种排序、属性绑定等,适合用来处理复杂数据。
setItemAt(item:Object, index:int);  //将元素插入到数组指定的位置,如果存在则替换
数组类型的对象,其子元素是无法作为数据源绑定的。
分享到:
评论

相关推荐

    flex数据绑定的原理

    6. **性能优化**:Flex数据绑定系统还包含了一些性能优化,比如变化传播的限制和缓存机制,以避免不必要的更新和提高效率。 7. **表达式绑定**:除了简单的变量绑定,Flex还支持复杂的表达式绑定,可以连接多个数据...

    FLEX资源——FLEX数据绑定专题(中文PDF)

    《FLEX数据绑定专题》是一本深入探讨Adobe Flex中数据绑定技术的专业中文PDF文档。Flex是一种用于构建富互联网应用程序(RIA)的开放源码框架,它允许开发者创建交互性强、功能丰富的Web应用。数据绑定是Flex中一个...

    FLEX数据绑定四种方式

    ### FLEX数据绑定四种方式详解 #### 一、概述 数据绑定是现代应用程序开发中一个重要的概念和技术。在Flex框架中,数据绑定被广泛应用来连接数据源与用户界面(UI)元素,使得数据能够实时更新并反映到界面上。本文将...

    flex数据绑定 pdf

    Flex数据绑定是Adobe Flex框架中的核心特性之一,它允许开发者将UI组件的显示状态与应用程序的数据模型紧密关联,实现数据的动态更新。这份名为“FLEX数据绑定专题”的PDF文档,很可能深入探讨了这一主题,提供了...

    flex 数据绑定 dataGrid.rar

    Flex数据绑定是Adobe Flex开发中的核心特性之一,它允许开发者将UI组件的属性与应用程序的数据模型直接关联。在本示例中,我们关注的是如何在Flex中使用数据绑定技术来操作DataGrid组件,这是一个用于展示表格数据的...

    Flex数据绑定专题

    ### Flex数据绑定专题详解 #### 一、数据绑定概述 数据绑定是Flex应用程序开发中的核心概念之一,它指的是将一个对象中的数据与另一个对象中的数据建立连接的过程。通过数据绑定,开发者可以实现在应用程序的不同...

    FLEX数据绑定专题

    本文将深入探讨“FLEX数据绑定专题”,包括其多种实现方式以及如何结合Java作为后端来实现数据交换。 首先,数据绑定是Flex中一种强大的工具,它简化了UI组件状态与应用数据之间的同步。在Flex 4中,数据绑定主要...

    flex数据绑定

    ### Flex 数据绑定详解 #### 一、数据绑定概念与重要性 数据绑定是Flex和Adobe AIR应用程序开发中的关键概念之一,其主要目的是实现不同对象之间的数据传输与同步更新。通过数据绑定,开发者能够轻松地在用户界面...

    FLEX 数据绑定专题一(转)

    本文将深入探讨“FLEX数据绑定”这一专题,它是一种强大的机制,允许视图与模型之间的自动同步,使得开发者能够更加专注于业务逻辑而不是繁琐的同步操作。本文是系列文章的第一部分,主要介绍数据绑定的基本概念、...

    Flex数据绑定[收集].pdf

    Flex数据绑定是软件开发中Adobe Flex或Adobe AIR应用程序的核心特性,它允许数据在不同对象之间自动同步。数据绑定简化了用户界面(UI)组件与数据源之间的交互,减少了手动更新的需要。然而,如果不理解其工作原理...

    Flex 数据绑定

    在本文中,我们将深入探讨Flex数据绑定的原理、使用方式以及它在实际开发中的应用。 1. 数据绑定概念 数据绑定是将UI组件(视图)的状态与应用程序数据(模型)关联起来的技术。在Flex中,数据绑定是一种声明性编程...

    flex3 数据绑定 总结

    总的来说,Flex 3 的数据绑定是一种强大的机制,它简化了应用程序中数据流的管理。通过 MXML 或 ActionScript,开发者可以选择最适合其需求的方式来实现数据绑定,从而提高代码的可读性和可维护性。无论是简单的属性...

    Flex Bind数据绑定实例代码

    Flex Bind数据绑定是Adobe Flex应用程序开发中的核心特性,它允许开发者在用户界面组件和应用程序模型之间建立动态连接,实现数据的自动同步。这种强大的功能极大地简化了编程逻辑,特别是处理用户交互和数据更新时...

    Flex初级数据绑定代码

    ### Flex初级数据绑定代码解析 #### 一、概述 本文将详细介绍一个Flex应用程序中的初级数据绑定实例。通过分析HelloWorld2.mxml文件,我们将深入了解Flex中的数据绑定机制及其基本用法。 #### 二、Flex与数据绑定...

    flex页面跳转及数据绑定

    在Flex开发中,页面跳转和数据绑定是两个核心概念,它们对于构建动态且交互性强的应用至关重要。让我们分别深入探讨这两个主题。 首先,Flex页面跳转。在Flex中,有多种方式来实现场景间的切换: 1. **ViewStack...

    flex企业应用开发笔记-数据绑定

    在Flex企业应用开发中,数据绑定是连接UI组件与数据模型的重要机制,使得视图能够自动反映模型的变化,反之亦然。这篇笔记主要探讨的是如何在Flex中实现数据绑定,以及其在实际应用中的作用。 数据绑定是Flex框架的...

    Flex高级数据绑定实例(界面语言切换)

    ### Flex高级数据绑定实例——界面语言切换 #### 概述 在Flex开发中,实现界面的多语言切换是一项常见的需求。本示例通过一个具体的代码片段来展示如何使用Flex中的高级数据绑定技术来实现这一功能。该示例不仅...

    Flex常用教程及库

    压缩包中的“FLEX数据绑定专题”可能包含以下内容: 1. **基础教程**:介绍数据绑定的基本概念,如何在MXML和ActionScript中设置绑定,以及不同类型的绑定。 2. **案例分析**:通过实际项目示例,展示数据绑定在...

Global site tag (gtag.js) - Google Analytics