我可能正在做一些非常愚蠢的事情,但我不明白为什么下面的代码不起作用......
在这里,我创建了一个名为spellbook的通用对象:
// A list of all the player's spells
public var spellBook:Object = {};
Run Code Online (Sandbox Code Playgroud)
在这里,我为法术书添加了一个键值对:
spellBook["bubble"] = new BubbleSpell(spellBook);
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试输出法术书的内容:
trace("Spells initialised. Available spells are:");
for each (var _spell:String in spellBook)
{
trace(" ", _spell, " : ", spellBook[_spell]);
}
Run Code Online (Sandbox Code Playgroud)
但这是我得到的输出:
Spells initialised. Available spells are:
[object BubbleSpell] : undefined
Run Code Online (Sandbox Code Playgroud)
我没有得到的是为什么它没有输出:
Spells initialised. Available spells are:
bubble : [object BubbleSpell]
Run Code Online (Sandbox Code Playgroud)
??
这就好像我正在迭代法术书中的值,而不是关键......那是怎么回事?到目前为止我看到的所有文档似乎都表明这是迭代字典的正确方法(通用对象类型是...)我是否需要调用方法来获取键而不是泛型的值对象?
如此迷茫!