私は本当にばかげたことをしているかもしれませんが、以下のコードが機能しない理由がわかりません...
ここでは、spellbook という汎用オブジェクトを作成します。
// A list of all the player's spells
public var spellBook:Object = {};
ここでは、スペルブックにキーと値のペアを追加します。
spellBook["bubble"] = new BubbleSpell(spellBook);
そしてここで、スペルブックの内容を出力しようとしています:
trace("Spells initialised. Available spells are:");
for each (var _spell:String in spellBook)
{
trace(" ", _spell, " : ", spellBook[_spell]);
}
しかし、これは私が得る出力です:
Spells initialised. Available spells are:
[object BubbleSpell] : undefined
私が得られないのは、出力されない理由です:
Spells initialised. Available spells are:
bubble : [object BubbleSpell]
??
キーではなく、スペルブックの値を反復処理しているようです...これは何が起こっているのでしょうか? これまでに見たすべてのドキュメントは、これが辞書を反復処理する正しい方法であることを示しているようです (ジェネリック オブジェクトの種類は...) ジェネリックの値ではなくキーを取得するメソッドを呼び出す必要がありますか?オブジェクト?
混乱している!