2009-07-10 27 views
0

嘿,我有一個關於從動作對象refrencing屬性的問題。Actionscript對象從字符串引用AS 3.0

如果我有一個名爲「組」以下對象...

group1 
    item1 = sampledata1 
    item2 = sampledata2 
    item3 = sampledata3 
group2 
    item1 = sampledata4 
    item2 = sampledata5 
    item3 = sampledata6 

我會通過鍵入「groups.group1.item2」

如何訪問組1/ITEM2我會創建一個方法,我可以以字符串形式傳遞密鑰,並檢索該節點處的數據。例如

groups.group1.item2將返回sampledata2

的getItem( 「group1.item2」);也將返回sampledata2

我認爲這是可能的使用eval(),但我相信已被刪除在AS 3.0我正在使用。有沒有其他方法可以做到這一點?謝謝。

回答

3

以對象的方式使用散列。

可以初始化對象是這樣的:

groups = 
{ 
    "group1": 
    { 
     "item1":sampledata1, 
     "item2":sampledata2 
    }, 
    "group2": 
    {"item1":sampledata1... 
    } 
}; 

或者用括號:

groups = new Object(); 
groups["group1"] = new Object(); 
groups["group1"]["item1"] = sampledata1; 

訪問像這樣做:

groups["group1"]["item1"] 

希望幫助。

+0

正確的答案......但是,你不需要被JSON符合......我的意思是,而不是使用字符串作爲關鍵,你可以使用標識符......即{「key」:}是相當於{key:value} ...並且可能用一個明確的語句來完成你的回答:someObject [「someProperty」]等價於someObject.someProperty,只是如果someObject的類型已知並且定義了SomeProperty,則後者更快通過someObject的類... greetz – back2dos 2009-07-11 01:51:20