Object是AS3中的首选关联容器吗?

时间:2010-10-20 16:18:44

标签: flex actionscript-3 data-structures

我一直在使用Object作为一种通用关联数组(map / dictionary)的方法,因为AS3 / Flex在这方面似乎非常有限。但我真的不喜欢它来自C ++ / Java / C#背景。有没有更好的方法,我没有遇到过一些标准课......这在AS3中甚至被视为好/坏?

2 个答案:

答案 0 :(得分:5)

是的,Actionscript使用Object作为通用关联容器,被认为是执行此操作的标准方法。

还有一个Dictionary课程,flash.utils.Dictionary

不同之处在于Dictionary可以使用任何值作为键,包括对象,而Object使用字符串键。对于大多数用途,Object是首选,因为它更快并涵盖了大多数用例。

您可以在此处查看Object的详细信息:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.htmlDictionary此处:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Dictionary.html 以及它们之间的区别:http://livedocs.adobe.com/flex/3/html/help.html?content=10_Lists_of_data_4.html

答案 1 :(得分:2)

对于地图和其他结构,我担心ObjectDictionary没有原生替代方案。至于标准,它取决于一个人如何定义标准,但是如果你寻找Java样式集合,你可能想要查看几个已知的库。

喜欢这个:

http://sibirjak.com/blog/collections/as3commons-collections/

另外,你可以看一下这个问题,它链接到几个ds库(包括上面的一个)。

Collections in Adobe Flex

我不会说使用Objects无论是好的还是坏的做法。在一般情况中,它们比任何Actionscript替代品都快(因为它们是原生的),但功能较少。有时提供的功能足够好。有时,它有点简单,所以更有条理的东西可以帮助你摆脱代码中的低级细节,并专注于你的“域逻辑”,可以这么说。

最后,所有这些库都通过对象,字典和数组(或向量)实现其数据结构。所以,如果原生物体对你的需求很好,我会说跟他们一起去。另一方面,如果您发现自己基本上重写了一个特殊的集合,或许使用其中一个库是明智的选择。