在Flex中,我如何知道动态对象的属性何时发生变化?

时间:2009-01-15 14:45:21

标签: flex events dynamic-class

我有一个动态类,用作配置设置的存储容器。设置是该类的变量,它具有读取和写入配置文件,数据库等的方法。现在,我想在更改类变量时触发写入持久存储。由于变量是在运行时动态添加的,所以我不能使用get / set方法,如果可以的话,也会导致很多样板代码。

如何触发更改班级属性的事件?

2 个答案:

答案 0 :(得分:2)

您可以从mx.utils.Proxy继承此类别。它允许您使对象具有动态性,但仍然能够编写一些在访问属性时运行的自定义代码(类似于getter和setter - 请参阅getProperty()setProperty()。)

答案 1 :(得分:0)

我会考虑避免使用动态对象,而是使用一种存储方法和一种检索数据的方法来创建数据存储类(SettingsModel?)。所以不要使用:

configurationSettings.randomSetting = value;

...你会写:

configurationSettings.store("randomSetting", value);

您可以在字典中内部存储命名设置,并在store()方法中执行任何需要做的魔术。

这里的主要优点是可读性:当你看到一个被调用的方法时,你知道它背后的功能。出于同样的原因,我倾向于不喜欢getter / setter函数。

最后这是一个品味问题,所以如果您的代码没有被破坏,为什么要修复它。 :)