先看一个比较正常的代码:
<?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数据绑定的原理
博文链接:https://hacker47.iteye.com/blog/235758
数据绑定是Flex的关键这本电子数详细介绍有关Flex绑定的知识
FLEX数据绑定专题 多种方式进行flex的数据 绑定 同时使java做为后台
深入浅出Flex_Viewer.pdf
flex 数据绑定dataGrid.rar
这个是关于flex数据绑定的pdf,个人觉得讲的挺好的,是从javaeye上下载的,讲的很详细。
数据绑定内容简介: 现在数据库或是某个文件里有一些数据需要显示在界面上该怎么办呢?我们的目的就是将这些数据设法放到界面上去可以显示出来,这个将数据放到界面上去的... 在Flex应用中程序中,数据绑定的实际是借
用于flex数据绑定,是初学flex看,在开发中需要用到的,帮助文档
flex中文帮助flex中文帮助flex中文帮助flex中文帮助
深入浅出Flex深入浅出Flex深入浅出Flex深入浅出Flex深入浅出Flex深入浅出Flex深入浅出Flex深入浅出Flex
Flex数据绑定[收集].pdf
用数据动态绑定XML,然后实现flex中树的绑定
深入浅出flex中文教程!!!!!!!!!!!!!!!!!!!!
MyEclipse+Flex+Blzeds入门浅谈.MyEclipse+Flex+Blzeds入门浅谈
FLEX 数据绑定 Flex HTTPservice使用 Flex 创建自定义事件。 其它入门基础等。
flex绑定资源文件1
利用Flex中高级数据绑定实现界面的多语言切换。
flex页面跳转及数据绑定的方法,flex页面跳转及数据绑定的方法
flex中文帮助文档flex中文帮助文档