小编Big*_*esB的帖子

为什么在ActionScript中迭代通用对象会给我值而不是键?

我可能正在做一些非常愚蠢的事情,但我不明白为什么下面的代码不起作用......

在这里,我创建了一个名为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)

??

这就好像我正在迭代法术书中的值,而不是关键......那是怎么回事?到目前为止我看到的所有文档似乎都表明这是迭代字典的正确方法(通用对象类型是...)我是否需要调用方法来获取键而不是泛型的值对象?

如此迷茫!

dictionary actionscript-3

0
推荐指数
1
解决办法
139
查看次数

标签 统计

actionscript-3 ×1

dictionary ×1