【发布时间】:2012-05-08 19:48:00
【问题描述】:
在 Flex (Flash Builder 4) 中,我需要一种方法来了解数组集合中的某些内容是否发生了变化。
我有一个自定义对象:
[可绑定] public var _myobject:MyObject;
它基本上只是一个包含一堆不同 String 和 Number 属性的类。
我需要一种可靠的方法来了解是否有任何属性已更改。例如,我将属性绑定到用户界面(字段),但也可以通过代码更改某些属性。
有没有办法做到这一点?我找到了 ChangeWatcher,但看起来它只查看一个简单的属性,例如字符串或数字。我需要观察或检测对象中所有属性的变化,希望不必将 ChangeWatcher 事件添加到每个属性。这可能吗?
【问题讨论】:
-
如果有很多对象的属性可以通过代码进行更改,那么您最好在更改任何内容时手动启动更改事件。
-
因此,无论我在哪里更改代码,我都必须添加事件触发代码...如果屏幕的所有属性都绑定到字段,我是否必须向每个字段添加 onChange 事件,或者当我的对象中的属性发生更改时,是否有更简单的方法来检测我的对象已更改?
-
好吧.. 有一个小解决方法.. 这将至少在一定程度上减少您的工作量.. 假设您的对象属性不是动态的.. 创建一个为所有属性手动编写设置器的对象。 . 并且任何对 setter 的调用都会调用一个通用函数,该函数将为任何更改的属性调度一个事件.. 这就是属性更改侦听器在 flex 中的工作方式。(如果 m 没有错,它们会在编译时进行设置)所以即使对象是绑定到屏幕上的字段,您无需担心更改..
标签: apache-flex events object flash-builder