Flex 数据绑定
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 "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 数据绑定的更多相关文章
- Flex数据绑定陷阱(一)
Flex数据绑定陷阱:常见的误用和错误 当构建Flex或者Adobe AIR程序时,将一个对象的值自动的传递给另一个对象这种处理是数据绑定最常 用并最有用的特征之一. 尽管如此,同时数据绑定会减缓程序 ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十三)台风模块
config.xml文件的配置如下: <widget label="台风" icon="assets/images/typhoon.png" config ...
- 转 Flex MXML编译成AS类
2009-09-22 23:25 Flex MXML编译成AS类 由“Flex 基础”文中可知:每一个mxml文件首先要编译成as文件,然后再译成swf文件.app.mxml文件编译后会产生一系列中间 ...
- Flex Builder读书笔记(二)——MXML
MXML类似于HTML,它提供各种标签来定义用户界面,但是它比HTML的结构更为严格,并拥有跟多的应用标签.MXML不仅包括可视标签,还包括不可视标签,如web service连接.数据绑定和动画效果 ...
- Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件
最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...
- Flex学习总结
Flex SDK Flex框架类库.Flex编译环境.调式器.MXML.ActionScript编程语言以及其它工具组成,Flash Builder是其开发环境, Flash Player的工作模 ...
- Flex Metadata tags 元数据标签
1.[Alternative] [可替换] 标明此类可以被参数中的类替换,版本号说明发生替换的版本. [Alternative]和[Deprecated] 不同.如果是[不建议使用]的类,以后的版本可 ...
- Flex中的折线图
1.问题背景 在Flex中,制作一个折线图.而且给折线图的横轴和纵轴进行样式设置,详细实现过程例如以下: 2.实现实例 (1)设置横轴样式和数据绑定 <mx:horizontalAxis> ...
- Flex 事件机制
使用ActionScript的单击事件示例 <?xml version="1.0" encoding="utf-8"?> <s:Applica ...
随机推荐
- 快速搭建本地HTTP服务器
我们都知道,可以通过浏览器直接打开HTML文件来查看可视化的效果,但这种方式有一些局限性.比如我们在做手机端适配的时候,无法直接查看手机端的效果等.为了不受此类限制,强烈建议搭建一个本地的HTTP服务 ...
- boost锁的使用
boost锁的概述 boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁. ▲ mutex对象类 mutex类提供互斥量,主要有两种:boost::mutex,b ...
- smali插入log,打印变量
一:Log打印变量: Log打印字符串: #liyanzhong debug const-string v1, "TAG" const-string v2, "xunbu ...
- Golang学习笔记:包制作
golang的包跟java as js之类的大不一样,一定要存在GOPATH里面,GOPATH是专门用于存放golang第三方的库,里面有两个文件夹, src:源代码目录 pkg:编译后的第三方包,这 ...
- PAT (Advanced Level) 1006. Sign In and Sign Out (25)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
- jQuery方式事件冒泡的2个方法
方式1:通过 event.stopPropagation(); $("div").click(function (event) { slide.call(this); event ...
- iOS之UITableView的上拉刷新
#import "ViewController.h" #import "UITableView+PullRefresh.h" @interface ViewCo ...
- 自适应网页设计/响应式Web设计
zccst转 很早就有人设想,能不能”一次设计,普遍适用”,让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整布局(layout)? 一.”自适应网页设计”的概念 2010年,Ethan Ma ...
- LPC1788的spi使用
#ifndef __SPI_H_ #define __SPI_H_ #include "common.h" #include "delay.h" // cs p ...
- 信息指纹(Fingerprint)及其应用
1.应用: i.网页地址去重 网页地址有100个字符,存储5000亿个网址本身需要50T的容量,而Hash表的存储效率只有50%,所有存储爬虫已经爬过的网址需要100T的 ...