当前位置: 首页 > news >正文

flex 属性绑定

as3支持绑定变量,控件的属性,函数,我们这里要讨论的是用as来动态绑定。

1.使用{}实现绑定:
[Bindable]
private var ac:ArrayCollection = new ArrayCollection();
<s:ComboBox dataProvider="{ac}" />
2.使用Binding标签实现绑定:
<mx:Binding source="ti1.text" destination="ti2.text" />
<mx:TextInput id="ti1" />
<mx:TextInput id="ti2" />
 
3.函数做绑定源:
private function bindFunction(val:String):String{
return "绑定的值为:" + val;
}
<s:TextInput id="t1"/>
<s:TextInput id="t2" text="{bindFunction(t1.text)}"/>
 
4.用as实现绑定:
有些组件是用as生成的,这时就没法用标签绑定了,解决办法是用as绑定。
private var t1:TextInput;
private var t2:TextInput;
private var watcher:ChangeWatcher;
 
private function init():void{
t1 = new TextInput();
vg.addElement(t1);
t2 = new TextInput();
vg.addElement(t2);
watcher = BindingUtils.bindProperty(t2,"text",t1,"text");
}
private function onClick(event:MouseEvent):void{
if(watcher.isWatching()){
watcher.unwatch();
Alert.show("取消绑定");
}else{
watcher.reset(t1);
Alert.show("重新绑定");
}
}
 
5.自定义绑定事件:
[Bindable(event="userNameChanged")]
private var userName:String;
 
private function onClick(event:MouseEvent):void{
userName = t1.text;
if(userName != "111"){
dispatchEvent(new Event("userNameChanged"));
}
}
<s:TextInput id="t1" />
<s:TextInput id="t2" text="{userName}"/>
<s:Button label="click" click="onClick(event)" />
将变量userName与t2的text属性绑定,当变量改变时,不一定就发生绑定(如输入111),只有当调用dispatchEvent方法发送事件时才发生绑定。
 
6.使用对象做绑定源:
直接在对象前加[Bindable]是不行的,以为这样的话,改对象的属性更新时目标是不会更新的,解决这个问题,有两种方法:
6.1.对象的每个需要绑定的属性前面都加上[Bindable]标签
6.2.使用ObjectProxy:
[Bindable]
private var objProxy:ObjectProxy;
private var user:User;
private function init():void{
user = new User();
user.id = 1;
user.name = "name1";
objProxy = new ObjectProxy(user);
}
private function onClick(event:MouseEvent):void{
objProxy.id = 2;
objProxy.name = "name2";
}
<s:TextInput id="t1" text="{objProxy.id}" />
<s:TextInput id="t2" text="{objProxy.name}"/>
<s:Button label="click" click="onClick(event)" />

相关文章:

  • 常用方法
  • asp.net页面间传值的9种方式
  • 用操作符函数格式化(c++)
  • HDU4626+博弈
  • Android游戏快速入门(一):基础储备
  • 应用开发框架之——插件、包
  • SQL SERVER中强制类型转换cast和convert的区别
  • ASP.NET MVC中检测浏览器版本并提示下载更新
  • firdac支持的序列和还原格式
  • Online, Cheap -- and Elite
  • python datetime笔记
  • exceptions.IOError: decoder jpeg not available
  • 【中文分词系列】 4. 基于双向LSTM的seq2seq字标注
  • 正则指引
  • 一些专业术语的总结
  • axios 和 cookie 的那些事
  • Bootstrap JS插件Alert源码分析
  • canvas 五子棋游戏
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • IndexedDB
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mockjs让前端开发独立于后端
  • PHP变量
  • SOFAMosn配置模型
  • 编写高质量JavaScript代码之并发
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 高性能JavaScript阅读简记(三)
  • 将 Measurements 和 Units 应用到物理学
  • 七牛云假注销小指南
  • 浅谈web中前端模板引擎的使用
  • 一个SAP顾问在美国的这些年
  • 终端用户监控:真实用户监控还是模拟监控?
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​低代码平台的核心价值与优势
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # Apache SeaTunnel 究竟是什么?
  • # Panda3d 碰撞检测系统介绍
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • $refs 、$nextTic、动态组件、name的使用
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (31)对象的克隆
  • (C#)一个最简单的链表类
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (三) diretfbrc详解
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (轉貼) UML中文FAQ (OO) (UML)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET 分布式技术比较
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET序列化 serializable,反序列化