Flex 数据绑定

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
height="662">
<fx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
[Bindable]
private var str:String = "asdf";
private var watcher1:ChangeWatcher;
private var watcher2:ChangeWatcher;
protected function button1_clickHandler(event:MouseEvent):void{
str += 'a';
}
protected function btnBind01_clickHandler(event:MouseEvent):void{
// bindProperty(目标对象,目标对象属性,源对象,源对象属性)
watcher1 = BindingUtils.bindProperty(txt004,'text',txt005,'text');
} protected function btnUnbind01_clickHandler(event:MouseEvent):void{
watcher1.unwatch();
} protected function btn004_clickHandler(event:MouseEvent):void{
watcher2 = BindingUtils.bindProperty(txt010,'text',txt011,'text');
// 不一定非要赋值给watcher
BindingUtils.bindProperty(txt011,'text',txt010,'text');
} ]]>
</fx:Script>
<fx:Declarations>
<fx:Model id="person">
<info>
<name>
<first>John</first>
<last>Doe</last>
<full>{person.name.first}.{person.name.last}</full>
</name>
<email>a@b.c</email>
<phone>1234567</phone>
</info>
</fx:Model>
</fx:Declarations>
<!-- fx:Binding必须为根的子元素 -->
<fx:Binding destination="txt003.text" source="txt002.text"/>
<fx:Binding destination="txt009.text" source="txt008.text" twoWay="true"/>
<s:TextInput id="txt001" x="212" y="50"/>
<s:TextInput x="212" y="100" enabled="false" text="绑定:{txt001.text}"/>
<s:TextInput x="212" y="150" text="绑定到对象不好:{txt001}"/><!-- 这样绑定只会绑定其id -->
<s:TextInput x="212" y="200" text="{str}"/>
<s:Button x="352" y="201" label="绑定到变量中" click="button1_clickHandler(event)"/>
<s:Label x="212" y="245" width="151" height="23" text="串联:{txt001.text} {txt001.text}'s &quot;ABC"/>
<s:TextInput id="txt002" x="471" y="50" text="使用fx:Bingding进行绑定"/>
<s:TextInput id="txt003" x="471" y="100"/>
<s:Panel x="476" y="130" width="250" height="200" title="使用BindingUtils类创建绑定">
<s:TextInput id="txt004" x="21" y="10" text="目标"/>
<s:TextInput id="txt005" x="21" y="40" text="源"/>
<s:Button id="btnBind01" x="21" y="87" label="绑定" click="btnBind01_clickHandler(event)"/>
<s:Button id="btnUnbind01" x="113" y="87" label="解除" click="btnUnbind01_clickHandler(event)"/>
</s:Panel>
<s:Panel x="194" y="290" width="250" height="299" title="双向数据绑定三种方式">
<s:TextInput id="txt006" x="10" y="19"/>
<s:TextInput id="txt007" x="10" y="58" text="@{txt006.text}"/>
<s:TextInput id="txt008" x="10" y="98"/>
<s:TextInput id="txt009" x="10" y="132"/>
<mx:HRule x="10" y="88" width="172"/>
<mx:HRule x="10" y="162" width="172" height="1"/>
<s:TextInput id="txt010" x="10" y="171"/>
<s:TextInput id="txt011" x="10" y="201"/>
<s:Button id="btn004" x="146" y="202" label="双向绑定" click="btn004_clickHandler(event)"/>
<s:Label x="158" y="29" text="表达式方式"/>
<s:Label x="158" y="108" text="fx:Binding"/>
<s:Label x="158" y="182" text="BindingUtis"/>
</s:Panel>
<s:Panel x="476" y="389" width="250" height="200" title="数据模型和多级绑定">
<s:TextInput x="10" y="27" text="@{person.name.first}"/>
<s:Label x="10" y="92" text="{person.name.full}"/>
</s:Panel>
</s:Application>

Flex 数据绑定的更多相关文章

  1. Flex数据绑定陷阱(一)

    Flex数据绑定陷阱:常见的误用和错误 当构建Flex或者Adobe AIR程序时,将一个对象的值自动的传递给另一个对象这种处理是数据绑定最常 用并最有用的特征之一. 尽管如此,同时数据绑定会减缓程序 ...

  2. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十三)台风模块

    config.xml文件的配置如下: <widget label="台风" icon="assets/images/typhoon.png" config ...

  3. 转 Flex MXML编译成AS类

    2009-09-22 23:25 Flex MXML编译成AS类 由“Flex 基础”文中可知:每一个mxml文件首先要编译成as文件,然后再译成swf文件.app.mxml文件编译后会产生一系列中间 ...

  4. Flex Builder读书笔记(二)——MXML

    MXML类似于HTML,它提供各种标签来定义用户界面,但是它比HTML的结构更为严格,并拥有跟多的应用标签.MXML不仅包括可视标签,还包括不可视标签,如web service连接.数据绑定和动画效果 ...

  5. Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

    最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...

  6. Flex学习总结

    Flex SDK Flex框架类库.Flex编译环境.调式器.MXML.ActionScript编程语言以及其它工具组成,Flash Builder是其开发环境,   Flash Player的工作模 ...

  7. Flex Metadata tags 元数据标签

    1.[Alternative] [可替换] 标明此类可以被参数中的类替换,版本号说明发生替换的版本. [Alternative]和[Deprecated] 不同.如果是[不建议使用]的类,以后的版本可 ...

  8. Flex中的折线图

    1.问题背景 在Flex中,制作一个折线图.而且给折线图的横轴和纵轴进行样式设置,详细实现过程例如以下: 2.实现实例 (1)设置横轴样式和数据绑定 <mx:horizontalAxis> ...

  9. Flex 事件机制

    使用ActionScript的单击事件示例 <?xml version="1.0" encoding="utf-8"?> <s:Applica ...

随机推荐

  1. Python3基础 使用list() 生成一个空列表

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  2. dedecms mysql连接错误:#1040 - Too many connections

    mysql能登进去一下,点任何链接又跳出来,然后就登不上了 解决办法:检查mysql所在盘是否还有空间

  3. how to enable #ifdef macro in the command line of make?

    Compilers normally use the -D flags eg Code: test.o: test.cpp $(CC) $(CFLAGS) -DTEST1 test.cpp -o $@

  4. GPRS优点介绍及GPRS上网相关知识(转)

    源:http://blog.chinaunix.net/uid-20745340-id-1878732.html 单片机微控制器以其体积小.功耗低.使用方便等特点,广泛应用于各种工业.民用的嵌入式系统 ...

  5. TextView 设置图片

    TextView 设置图片 2012-05-17 15:12:38|  分类: Android |  标签:android  textview图片  |举报|字号 订阅     Drawable im ...

  6. 关于iOS性能调优

    性能调优一直都是作为高阶iOS开发者的一个入门门槛,下面我搜集了日常查阅资料中见到的各种高质量调优博文,仅供参考 UIKit性能调优实战讲解 iOS 高效添加圆角效果实战讲解

  7. MySQL master/slave 模式

    1 .复制 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并重 ...

  8. USB自定义HID设备实现-LPC1768

    首先在之前鼠标的基础上修改设备描述符 #include "usbdesc.h" //usb标准设备描述符 const U8 USB_DeviceDescriptor[] = { U ...

  9. IO的五种模型

    为了区分IO的五种模型,下面先来看看同步与异步.阻塞与非阻塞的概念差别. 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回.按照这个定义,其实绝大多数函数都是同步调用(例如 ...

  10. iOS开发——代理与block传值

    一.代理传值的方法 1.Hehe1ViewController.h中 #import <UIKit/UIKit.h> @protocol Hehe1ViewControllerDelega ...