为什么不在字典对象中插入一个条目?

时间:2012-10-22 16:13:55

标签: actionscript-3 flash flex dictionary

这不起作用,抛出错误#1056:

m_cdictDeadConnections = new Dictionary();
m_cdictDeadConnections[1] = "f";

咦?这里的语法有什么问题?谢谢!

编辑:有几个答案指的是缺乏语法;我从类定义中获取变量。对此感到抱歉。

编辑:为了进一步说明,错误#1056正在这行代码上抛出:

m_cdictDeadConnections[1] = "f";

除了一些非常模糊的语言规则之外,这似乎不应该是应该发生的事情。

4 个答案:

答案 0 :(得分:1)

我看不出逻辑有什么问题。只需确保语法正确。

var dictionary:Dictionary = new Dictionary();

答案 1 :(得分:1)

如此处的文档http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Dictionary.html

所述
  

Dictionary类允许您创建动态的属性集合

动态地,字典在对象上创建属性,并将您在括号中指定的内容用作标识符。

如果要创建由int索引的对象,请更喜欢使用数组。

var myArray:Array = new Array();
myArray[0] = ""
myArray[1] = "f";

如果您想要哈希,请使用Object。该对象将由字符串索引:

var myObject:Object = new Object();
myObject["1"] = "f";

您可以在http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7eea.html

找到有关如何创建这些数据结构的更多信息

编辑: 它在我的笔记本电脑上工作正常,因此它应该能够实例化一个名为1的属性。

答案 2 :(得分:1)

您错过了var关键字:

var m_cdictDeadConnections:Dictionary = new Dictionary();
m_cdictDeadConnections[1] = "f";

(我也给了var一个类型:Dictionary - 这是一个非常好的习惯!)

答案 3 :(得分:0)

我认为您的代码没问题。

就像你说的那样: “我从类定义中获取变量”

我建议您在插入值后跟踪对象。

m_cdictDeadConnections = new Dictionary();
m_cdictDeadConnections[1] = "f";
trace....

因为m_cdictDeadConnections是一个变量,所以它可能被其他代码更改或清除。 希望这可以帮到你。