方式一:使用ObjectProxy
- <?xml?version="1.0"?encoding="utf-8"?>?
- <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?minWidth="955"?minHeight="600"?
- ?????????????????creationComplete="init()">?
- ????<mx:Script>?
- ????????<![CDATA[?
- ????????????import?mx.controls.Alert;?
- ????????????import?mx.events.FlexEvent;?
- ????????????import?mx.events.PropertyChangeEvent;?
- ????????????import?mx.utils.ObjectProxy;?
- ?????????????
- ????????????private?var?objectProxy:ObjectProxy=new?ObjectProxy();?
- ????????????protected?function?init():void?
- ????????????{?
- ????????????????objectProxy.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,?changeMethod);??
- ????????????}?
- ?????????????
- ????????????private?function?changeMethod(evt:PropertyChangeEvent):void?{?
- ????????????????if(evt.newValue){?//值有改变?
- ??????????????????trace("变化的属性名称:"+evt.property.toString()+";发生更改的对象(在监听对象的时候特别有用):"+evt.source+"|旧值:"+evt.oldValue+"|新值:"+evt.newValue);?
- ????????????????}?
- ????????????}??
- ?????????????
- ????????????public?function?buttonClick():void{?
- ????????????????objectProxy.name=new?Date().getTime();?
- ????????????}?
- ?????????????
- ????????]]>?
- ????</mx:Script>?
- ????<mx:Button?label="点击更改变量的值"?click="buttonClick()"/>?
- </mx:Application>?
变化的属性名称:name;发生更改的对象(在监听对象的时候特别有用):[object Object]|旧值:null|新值:1363690634734
变化的属性名称:name;发生更改的对象(在监听对象的时候特别有用):[object Object]|旧值:1363690634734|新值:1363690638142
变化的属性名称:name;发生更改的对象(在监听对象的时候特别有用):[object Object]|旧值:1363690638142|新值:1363690648282
变化的属性名称:name;发生更改的对象(在监听对象的时候特别有用):[object Object]|旧值:1363690648282|新值:1363690650001
变化的属性名称:name;发生更改的对象(在监听对象的时候特别有用):[object Object]|旧值:1363690650001|新值:1363690652340
官方地址:http://livedocs.adobe.com/flex/3_cn/mx/events/PropertyChangeEvent.html
方式二:使用BindingUtils
- <?xml?version="1.0"?encoding="utf-8"?>?
- <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?minWidth="955"?minHeight="600"?
- ?????????????????creationComplete="init()">?
- ????<mx:Script>?
- ????????<![CDATA[?
- ????????????import?mx.binding.utils.BindingUtils;?
- ????????????import?mx.controls.Alert;?
- ????????????import?mx.events.FlexEvent;?
- ????????????import?mx.events.PropertyChangeEvent;?
- ????????????import?mx.utils.ObjectProxy;?
- ?????????????
- ????????????[Bindable]?//必须的,不然检测不到变化?
- ????????????public?var?object:String="123";?
- ????????????protected?function?init():void?
- ????????????{?
- ????????????????BindingUtils.bindSetter(changeMethod,this,'object');?
- ????????????}?
- ?????????????
- ????????????private?function?changeMethod(str:String):void?{?
- ????????????????trace("changeMethod有变化,变化后的值为:"+str);?
- ????????????}??
- ?????????????
- ????????????public?function?buttonClick():void{?
- ????????????????object=new?Date().getTime()+"";?
- ????????????????trace("当前时间字符串:"+object);?
- ????????????}?
- ?????????????
- ????????????/*?日志输出?
- ????????????changeMethod有变化,变化后的值为:123?
- ????????????changeMethod有变化,变化后的值为:1364007051727?
- ????????????当前时间字符串:1364007051727?
- ????????????changeMethod有变化,变化后的值为:1364007052587?
- ????????????当前时间字符串:1364007052587??
- ????????????*/?
- ?????????????
- ????????]]>?
- ????</mx:Script>?
- ????<mx:Button?label="点击更改变量的值"?click="buttonClick()"/>?
- </mx:Application>?
官方地址:http://livedocs.adobe.com/flex/3_cn/langref/mx/binding/utils/BindingUtils.html