是否可以清除Flex flash.utils.Dictionary
?我有一个Dictionary
,我想清除(删除所有元素)。清除Flex动作脚本字典
回答
我不相信有明确的明确命令。
然而,你可以写你自己会遍历所有的按键和运行这个
delete dict[key];
或者你也可以重新分配
dict = new Dictionary()
我认为这会工作,但我我不是100%肯定的,因为你在修改词典的同时迭代它:
function clear(d:Dictionary):void {
for(var id:* in d) {
delete d[id];
}
}
但是,我通常只是在需要清除一个字典时创建一个新的字典(尽管如果它在多个地方被引用,那么这可能对您不适用)。
+1作品。通过两次运行测试它,第一次运行后它是空的。 – 2011-04-03 01:05:33
上面的代码有一个缺陷:'id'必须是NO类型,因为Dictionary可以保存任何类型的对象作为键引用,而不仅仅是像动态对象那样的字符串。上面的代码只会删除字符串引用! – 2012-03-09 17:58:16
我编辑了解决问题的答案。 id现在是无类型的(*),所以它可以采用任何类型并清除所有可能的密钥。当它被键入为一个字符串时,id只会清除字符串键;此外,不会抛出任何错误,并且对于非字符串键,id不为空,它们在迭代期间被简单地跳过。所以id必须是无类型的,以遍历所有可能的键。 – Triynko 2014-01-15 19:23:42
您不仅需要确保密钥是对象类型,还是需要先获取密钥然后从字典中删除它们。否则,你会在字典中留下一个关键字(最后一个)。
我记得上面的代码在工作之前,但最近已经改变了最后一次flash player的迭代。
此代码将确保它们全部被删除,包括最后一个。
//Clean up the dictionary
var keys:Array = [];
var key:*;
for (var key:* in dictionary)
keys.push(key);
for each (var key:* in keys)
delete dictionary[ key ];
要删除所有元素的词典,循环遍历每个键,使用delete关键字
function clear(dict:Dictionary):void
{
for(var key:Object in dict)
{
delete dict[key];
}
}
如果你想成为100%确保您的删除键被垃圾回收,您必须将您的Dictionary实例替换为新的Dictionary。
dict = new Dictionary();
我曾经有一个Dictionary对象,有300万字符串作为键。这些字符串只会在Dictionary实例本身时被垃圾回收。
刚:
dictionary = new Dictionary()
public static function clear(dict:Dictionary):void {
var key:*
for(key in dict) {
delete dict[key];
}
}
使用上述功能的效用函数,你可以用它在你的代码库。
- 1. C#字典清除()清除辞典字典
- 2. Flex和动作脚本
- 3. 清除词典的字典
- 4. 清理脚本初始化。字典
- 5. flex android动作脚本本机扩展
- 6. flex动作脚本文本字段丢失ctrl + v粘贴?
- 7. Flex-动作脚本编程语言
- 8. Flex动作脚本 - ArrayList问题
- 9. Flex Flash动作脚本表单事件
- 10. 在Flex中3 /动作脚本3
- 11. Flex动作脚本超时问题
- 12. Draggin删除AVM1(动作脚本1/2)不工作在AVM2(动作脚本3/Flex)
- 13. Flex字典文字
- 14. 脚本块作为字典的值?
- 15. 动作脚本项目:动作脚本项目教程使用flex sdk
- 16. 带有清除按钮的动作脚本绘图
- 17. UI自动清除带有“清除按钮”的文本字段
- 18. 获取动作脚本字典中的键
- 19. Flex字典:订单
- 20. flex字典错误?
- 21. Flex字典排序
- 22. 使用动作脚本清理未知字符的xml鸣叫
- 23. 在Python中更新和清除字典
- 24. WPF - 只清除某些资源字典
- 25. 脚本字典功能
- 26. VBA脚本来清除已删除的文件夹不工作
- 27. 在Flex中清除DateField 3
- 28. 清除/清空Flex中的lineChart
- 29. C#基本字典排序只需要清除错误
- 30. 如何在Flex动作脚本中确认文本输入
我的目标是重复使用'Dictionary'而不是创建一个新的。 – 2013-03-07 20:40:16