2014-09-22 41 views
0

我要遍歷字典的鍵,我已經看了:無法進行遍歷鍵在flash.utils.Dictionary

Efficient looping through AS3 dictionary

我使用下面的代碼填入一詞典:

arguments = new Dictionary(); 
for each(var entry:XML in bean.child("entry")) 
{ 
    var key:String = [email protected](); 
    value = instantiate(entry.children()[0]); 
    arguments[key] = value; 
} 

在「參數」字典然後被傳遞給它試圖遍歷該數組中的鍵的另一種方法:

for (var key:Object in arguments) 
{ 
    retval[key] = arguments[key.toString()]; 
} 

不管我用這些循環做什麼,我都無法得到第二個循環的主體來執行。

我已經用調試器驗證'參數'包含正確的條目。

回答

0

我嘗試了一些測試代碼:

private function createDict():void { 
    var dict:Dictionary = new Dictionary(); 

    for (var j:int = 0; j < 5; j++) { 
     dict[j.toString()] = new Sprite(); 
    } 

    parseDict(dict); 
} 

private function parseDict(source:Dictionary):void { 
    for (var key:Object in source) { 
     trace(key + source[key].toString()); 
    } 
} 

輸出:

[trace] 0[object Sprite] 
[trace] 1[object Sprite] 
[trace] 2[object Sprite] 
[trace] 3[object Sprite] 
[trace] 4[object Sprite] 

所以它按預期工作。所以你需要檢查一下,在你的「parseDict」函數中,你的字典仍然有效(也許它在某處損壞了)。另外,檢查你的鑰匙 - 也許與他們的問題。

0

應該知道它會變成是一個愚蠢的閃招...

for (var key:Object in this.arguments) 
{ 
    retval[key] = this.arguments[key.toString()]; 
} 

工作正常。