方式一:使用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官方地址:
方式二:使用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>
官方地址: