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. POJ 3648 Wedding

    2-SAT,直接选择新娘一侧的比较难做,所以处理的时候选择新郎一侧的,最后反着输出就可以. A和B通奸的话,就建边 A->B'以及B->A’,表示 A在新郎一侧的话,B一定不在:B在新郎一 ...

  2. Python3基础 函数名.__doc__显示一个函数的单行与多行函数文档

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

  3. COC建筑拖动的实现

    最近在玩COC,多体验一下手游的体验,因为自己毕竟一直是做页游的,有些观念需要转变一下. 好像偏了,玩了几次之后突然想起COC那个地图拖动的自己之前实现过,那是2010年左右的时候,模拟经营类页游大行 ...

  4. PHP json不转义

    json_encode($result, JSON_UNESCAPED_UNICODE);

  5. 一个简单易懂的javascrip selection&range小案例

    在制作富文本编辑器,尤其是在制作以div元素为编辑器区域时,当鼠标离开编辑区域以后会失去焦点,失去选区,这时候就要通过selection&range来重新设置选区.[以下代码尚未考虑IE低版本 ...

  6. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  7. iOS之UILabel自适应大小

    //初始化一个label self.label=[[UILabel alloc] init]; //设置自动行数与字符换行 [self.label setNumberOfLines:0]; //给la ...

  8. 安装PIL遇到的问题

    配置:Win7 64位 不过折腾到最后,没有使用PIL,官方的PIL很久木有更新了,换了Pillow,是PIL的衍生吧,一直有更新,但是两者不可在同一环境共存. 1 Python version 2. ...

  9. Linux包管理工具分析

    转自:http://blog.csdn.net/carolzhang8406/article/details/14198219 在正式进入讨论之前,先贴几条非常有用的link: linux 发行版比较 ...

  10. ISP和IAP

    ISP(在系统编程)是一种不依赖于单片机自身软件的程序下载方式,特点是不需要从电路板上取下单片机,通过某种方式使单片机进入ISP模式,开放编程接口,由其使用的计算机将新的程序代码写入到存储器内.我们平 ...