flex企业应用开发笔记-数据绑定

1.监听对象属性改变可用  ChangeWatcher类:

   如监听ArrayCollection的length属性起作用,但监听list属性不起作用,原因:list的get方法绑定的事件是listchanged事件,此事件只有当调用list的set方法时,并且list的引用指向发生变化(而不是对象内部滨化)才会被分发,而对testList的操作的addItem操作,不会对list的引用产生影响。 

   例子:

           var testList:ArrayCollection = new ArrayCollection();

           ChangeWater.watch(testList,"length",handlerFunction);

          

           private function handlerFunction(event:Event):void{

               //.......

          }

2. 例子:

            [Bindable]

            class A{

                  public var b:B = new B();

            }

        我们对A对象进行了绑定,对象B的引用b也被绑定了。但只有当b引用指向发生时,b的更新事件才会被触发。否则即使b引用的对象内部发生了变化,更新事件也不会触发。

 

 

Bindable原理:[Bindable]或者[Bindable(event="propChange")]

当使用[Bindable]时,如果绑定的对象源发生变化,flex会帮我们就会发出一个名称为"propertyChange"的事件

当使用[Bindable(event="propChange")]时,我们必须手动去派发这个事件,当被绑定的对象发生变化,就会发出一个名称为指定的如例子中的"propChange"的事件。

 

例子:

[Bindable(event = "myChange")]

public  var str:String =  "aaa";

 

public var set  setStr(myStr:String):void{

      str = myStr;

      dispatchEvent(new Event("myChange"));//必须手动派发事件

}

 

<mx:Text  text="{str}" id="txt"/>:

txt控件使用了str对象,相当于注册了一个事件监听器,监听的事件名称为"myChange";

当str对象发生改变时,txt控件捕捉到该事件,并进行更新操作

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值