我一直使用對象作爲一種通用的關聯數組(地圖/字典)的方式,因爲AS3/Flex在這方面似乎非常有限。但我真的不喜歡它來自C++/Java/C#背景。有沒有更好的方法,我沒有遇到過一些標準的類......這在AS3中甚至被認爲是好的/壞的?對象是AS3中的首選關聯容器?
回答
是的,Actionscript使用Object
作爲通用關聯容器,並被認爲是這樣做的標準方式。
還有一個Dictionary
類可用,flash.utils.Dictionary
。
區別在於Dictionary
可以使用任何值作爲關鍵字,包括對象,而Object
使用字符串關鍵字。對於大多數用途,Object
是首選,因爲它更快,涵蓋大部分用例。
你可以看到Object
這裏的細節:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.html 和Dictionary
這裏: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
恐怕沒有本地替代Object
或Dictionary
地圖和其他結構。至於標準,好吧,它取決於如何定義標準,但是如果您查找Java樣式集合,則可能需要檢查兩個已知庫。
贊一個:
http://sibirjak.com/blog/collections/as3commons-collections/
此外,你可以看看這個問題,有鏈接到幾個DS庫(包括上面的一個)。
使用對象我不會說是好是壞的做法。在一般情況下他們比任何Actionscript替代(因爲他們是本地的)更快,但功能較少。有時提供的功能足夠好。有時候,這有點枯燥,所以更多結構化的東西可以幫助你擺脫代碼中較低層次的細節,並專注於你的「領域邏輯」,可以這麼說。最後,所有這些庫都通過對象,字典和數組(或矢量)實現它們的數據結構。所以,如果本地對象適合您的需求,我會說和他們一起去。另一方面,如果你發現自己基本上重寫了一個特定的Set,也許使用這些庫中的一個將是一個明智的選擇。
謝謝。我真的不想使用一些「隨機」庫,除非它是一個事實上的標準,就像Java中的Apache Commons一樣......我也可以自己工作。 – 2010-10-21 11:18:48
嘿,約翰,我們對標準庫的AS很差。就你而言,AS3Commons集合是你能夠在網絡中獲得的最佳選擇。 – 2010-11-02 19:35:40
- 1. 哪個是首選的,關聯數組或對象?
- 2. 面向對象的lua sans潛在的關聯容器機制
- 3. 在UML中關聯對象或類是否關聯?
- 4. 開關AS3對象問題
- 5. Spring Bean容器中的首選順序
- 6. 在CakePHP中關聯對象
- 7. 關聯容器中的end()迭代器
- 8. 關聯容器的引用
- 9. iOS中的UIAlertView中的關聯對象
- 10. 定時器在AS3中的對象
- 11. 驗證對象的關聯
- 12. FactoryGirl belongs_to關聯和validates_presence_of失敗 - 外鍵關聯,對象不是
- 13. AS3:從對象中挑選顏色
- 14. Objective-C塊對象是否可以有關聯的對象?
- 15. 什麼是父對象的子對象關聯?
- 16. AS3 - 從類中向MovieClip容器添加對象
- 17. 在滾動容器對象時在AS3中座標溢出?
- 18. 對象和定時器AS3
- 19. 關於每個對象的AS3 dispatchEvent
- 20. SQLAlchemy的級聯和關聯對象
- 21. 在Java中是一個對象關聯。面對在採訪中
- 22. 容器中的對象
- 23. 對象C運行時關聯對象
- 24. 觀察對象和關聯對象
- 25. 更改as3中與類關聯的MovieClip
- 26. 多態關聯中的段對象
- 27. Rails中關聯的空對象模式
- 28. 對象圖中的聚合關聯
- 29. 關聯DBAccess中的兩個對象
- 30. 解決SL4中的關聯對象RIA
Flex應用程序是否可以使用flash.utils? – 2010-10-21 11:16:46
是的,我只是在Flex Builder 3中測試過它,它可用。我還添加了另一個鏈接,更詳細地描述它們之間的差異。 – 2010-10-21 14:33:33