首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex 双向绑定 工具种

2012-10-07 
Flex 双向绑定 工具类最近做Flex项目,碰到了双向绑定的问题,查了下网上,有解决方法?简单说就是 2个单项绑

Flex 双向绑定 工具类

最近做Flex项目,碰到了双向绑定的问题,

查了下网上,有解决方法

?

简单说就是 2个单项绑定 + 简易的同步机制

?

看代码:

      /**实现双向绑定工具类*/public class BindingUtil{public var watchers:ArrayCollection = new ArrayCollection();/**绑定方法*/public function bind(obj1:Object,prop1:String,obj2:Object,prop2:String):void{/**是否在改变标志,类似 数据同步机制*/var flag:Boolean = false;var tempwatcher1:ChangeWatcher = ChangeWatcher.watch(obj1,prop1,function(event:Event):void{if(!flag){/**锁定对象*/flag = true;obj2[prop2] = obj1[prop1];/**解锁对象*/flag = false;}});var tempwatcher2:ChangeWatcher = ChangeWatcher.watch(obj2,prop2,function(event:Event):void{if(!flag){/**锁定对象*/flag = true;obj1[prop1] = obj2[prop2];/**解锁对象*/flag = false;}});this.watchers.addItem(tempwatcher1);this.watchers.addItem(tempwatcher2);}/**解除绑定*/public function unbind():void{for(var i:int = 0; i<this.watchers.length; i++){ChangeWatcher(this.watchers.getItemAt(i)).unwatch();}}}

      ?

      ?

      加入了属性,保存了所有的绑定,

      ?

      也提供了解除绑定的方法

      ?

      这样的好处,不言而喻吧,当你同个视图想绑定不同对象的时候,那么就派上用场了!

热点排行