哪个是使字典与本地共享对象保持同步的最佳方法?

时间:2011-03-22 14:27:00

标签: flash flex actionscript-3 actionscript flex4

在我的Flex应用程序的一个类中,我有一个字典,它会定期从应用程序的其他部分更新。它包含某种用户首选项,我希望它与本地共享对象保持同步 - 在类初始化期间需要读取字典,并在更改,添加或删除元素时将其保存到本地存储。

“Dictionary”对象仅继承“Object”并且没有change事件 - 就像ArrayCollection中的“collectionChange”一样。因此,我无法通过侦听事件和操纵事件处理程序中的共享对象来同步字典。

另一种可能的解决方案是将字典设为私有并使用我班级中的特殊方法对其进行操作。类似的东西:

public function setValue(key:String, value:String):void
public function getValue(key:String):String
public function delValue(key:String):void

但是使用绑定将成为一个真正的噩梦,我将不得不在应用程序的许多其他部分进行更改。

您如何将字典与本地存储同步?任何想法将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:1)

我尝试使用bindSetter

答案 1 :(得分:1)

嗯,有趣的问题。就个人而言,我认为您需要使用最终属性而不是动态属性来正确地重新构建数据结构。

与此同时,我认为没有完全重写所有内容的唯一选择是在字典中设置一个每x秒运行一次的计时器并与共享对象同步。由于许多原因,这并不理想,但在此之前它将适用于您为应用程序完成更好的数据模型。