`

浅谈flex中的绑定问题

    博客分类:
  • flex
阅读更多

先看一个比较正常的代码:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import cn.whitecrystal.ObjectA;
			[Bindable]
			private var objectA:ObjectA = new ObjectA();
		]]>
	</mx:Script>
	<mx:Label x="10" y="10" text="{objectA.objectB.aLabel}" width="106"/>
	<mx:Button x="136" y="8" label="Button" click="objectA.objectB.aLabel='HELLO'"/>
</mx:Application>

 ObjectA的代码:

package cn.whitecrystal
{
	[Bindable]
	public class ObjectA
	{	
		public var objectB:ObjectB = new ObjectB();
	}
}

 ObjectB的代码:

package cn.whitecrystal
{
	[Bindable]
	public class ObjectB
	{
		public var aLabel:String = "this is a label";
	}
}

    很显然,当我点击按按钮的时候,Label的文字马上更新的,这就是flex的绑定了。

    但是,我们平常碰到的代码可以不会这么正常。我们假设Object B是一个小白写的,写成这样:

package cn.whitecrystal
{
	public class ObjectB
	{
		public var aLabel:String = "this is a label";
	}
}

   很不幸,这样这样即使你更新实例中aLabel的值,banding也不会生效的。其实这在我们实际开发中更为常见,因为第三方开发包的源码不开源的时候,你又有这种需求就得瞪眼了。

   当然书上不会教你这些东西,一切开发中的tip要由小白林毓颖来告诉更多的菜鸟们,大鸟们从来不说嘀嘀嘀。

   方法当然有很多种,这里介绍其中一个吧:

   保持类的封装当然是我们的最终目的:

   所以选择修改ObjectA如下:

package cn.whitecrystal
{
	import mx.utils.ObjectProxy;	
	[Bindable]
	public class ObjectA
	{	
		
		private var temp:ObjectB = new ObjectB();
		public var objectB:ObjectProxy = new ObjectProxy(temp);
	}
}
 

ObjectProxy当然是一个重要的架桥类,具体大家见文档吧。

 

 

分享到:
评论

相关推荐

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

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

    flex数据绑定的原理

    在Flex开发中,数据绑定(Data Binding)是一种强大的机制,它允许UI组件的状态与应用程序的数据模型之间自动同步。数据绑定的原理是通过监听数据源的变化,并自动更新与之绑定的UI组件,反之亦然,从而简化了代码并...

    flex数据绑定 pdf

    5. **数据绑定与MVC模式**:Flex中的数据绑定与Model-View-Controller(MVC)设计模式的关系,如何通过数据绑定实现MVC的分离关注点。 6. **实用示例**:提供具体的Flex项目实例,展示如何在实际开发中应用数据绑定...

    FLEX数据绑定四种方式

    本文将详细介绍Flex中数据绑定的四种主要方式:“{}”绑定表达式、[Bindable]绑定符号、`&lt;mx:Binding&gt;`标签以及BindingUtils动态绑定。 #### 二、“{}”绑定表达式 **简介** “{}”绑定表达式是一种最直接和简单的...

    Flex数据绑定专题

    #### 二、Flex中的数据绑定方式 Adobe Flex支持三种主要的数据绑定方式: 1. **MXML中的大括号({})语法**:这是最直观且常用的一种数据绑定方式。开发者只需要简单地在目标元素的属性值位置放入一对大括号,并在...

    FLEX数据绑定专题

    首先,数据绑定是Flex中一种强大的工具,它简化了UI组件状态与应用数据之间的同步。在Flex 4中,数据绑定主要分为两种类型:声明式数据绑定和编程式数据绑定。声明式数据绑定通过XML语法在MXML文件中直接设置,如`...

    flex 数据绑定 dataGrid.rar

    在本示例中,我们关注的是如何在Flex中使用数据绑定技术来操作DataGrid组件,这是一个用于展示表格数据的强大工具。DataGrid通常用于显示结构化的数据集合,如数据库记录或XML数据。 在Flex中,数据绑定允许我们...

    Flex数据绑定[收集].pdf

    在Flex中,数据绑定表达式通常在MXML中使用大括号({})表示,用于将一个对象的属性值与另一个对象的属性值连接起来。例如,`&lt;s:Label id="label" text="{xml.user.name}" /&gt;`将XML对象的"user"子节点的"name"属性绑定...

    FLEX 数据绑定专题一(转)

    本文是系列文章的第一部分,主要介绍数据绑定的基本概念、工作原理以及在FLEX中的应用。 数据绑定的基本概念: 数据绑定是连接应用程序UI(用户界面)组件和数据源的过程,当数据源发生变化时,UI会自动更新,反之...

    flex数据绑定

    Flex中的数据绑定机制会捕获一系列常见的错误,包括但不限于: - `Error#1006: Call attempted on an object that is not a function.` 当尝试对非函数对象执行调用时触发。 - `Error#1009: null has no properties...

    深入浅出flex中文教程

    Flex中的数据绑定是其强大功能之一,它允许UI组件的状态自动反映模型数据的变化,反之亦然。这种机制减少了代码量,提高了开发效率,确保了数据和视图的一致性。 五、Flex框架与Flex Builder 1. Flex框架:包括...

    Flex 数据绑定

    在Flex中,数据绑定是一种声明性编程方式,通过简单的语法就能实现双向绑定,即模型变化时更新视图,用户交互改变视图时更新模型。 2. 声明式数据绑定 在Flex中,数据绑定通常使用`=`, `:`或`{}`符号来表示。例如,...

    flex 官方文档 中文教程

    在Flex中,ActionScript用于编写业务逻辑和处理用户交互。 4. **Flex组件** Flex提供了大量预定义的UI组件,如按钮、标签、列表、面板等,开发者可以通过这些组件快速搭建用户界面。每个组件都有丰富的属性和方法...

    动态绑定XML,实现flex树控件的绑定

    在Flex中,Tree控件用于显示层次结构的数据,它可以是多级别的,非常适合用来展示目录结构或组织结构等。而XML作为一种轻量级的数据交换格式,能够简洁地表示复杂的数据结构,是绑定到Flex组件的理想选择。 在.NET...

    Flex Bind数据绑定实例代码

    本实例代码将深入探讨Flex中数据绑定的工作原理以及如何在ActionScript 3.0中实现它。 数据绑定的基本概念是将UI组件的属性(如文本框的文本)与应用程序中的数据源(如数组或对象的属性)关联起来。当数据源发生...

    FLEX中文帮助flex中文帮助

    flex中文帮助flex中文帮助flex中文帮助flex中文帮助

    flex页面跳转及数据绑定

    数据绑定是Flex中一种强大的特性,它允许UI组件的值自动与数据模型同步,无需手动处理事件或属性更新。在Flex中,数据绑定主要包含以下四种方式: 1. **"{ }"绑定表达式**:最常用的方式,将数据源直接写在大括号内...

    Flex中文教程中文文档

    5. **数据绑定**:Flex支持数据绑定机制,允许UI组件的状态直接与应用程序的数据模型关联,当数据模型改变时,界面会自动更新,反之亦然。 6. **服务访问**:Flex可以轻松地与各种后台服务进行通信,如AMF(Action ...

Global site tag (gtag.js) - Google Analytics