2011-03-22 41 views
1

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

“Dictionary”对象只继承“Object”并且没有更改事件 - 就像ArrayCollection中的“collectionChange”一样。所以我不能仅仅通过侦听事件并在事件处理程序中操作共享对象来同步字典。

另一种可能的解决方案是将字典设置为私有,并在我的课程中使用特殊方法对其进行处理。喜欢的东西:

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

但使用绑定将成为一个真正的噩梦,我将不得不在应用程序的其他许多地方的变化。

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

回答

1

哼哼,有趣的问题。就个人而言,我认为您需要通过使用最终化属性而不是动态属性来适当地重新构建数据结构。然而,与此同时,我认为你唯一的选择,而不是完全重写所有的东西,就是在字典中设置一个计时器,每隔x秒运行一次,并与共享对象同步。这不是理想的理由,但它会在此期间工作,直到您为应用程序最终确定一个更好的数据模型为止。

相关问题