2011-05-13 67 views
0

我有一組電影剪輯(代表樂隊成員),它們具有各種屬性,其中包括一個屬性,用於指示樂隊成員離開當前樂隊後去過的位置。對於組成一個新組的人,我想創建一個數組。在這個數組中,我想將所有留給同一個組的數組分成二級數組。所以,如果你有五個樂隊成員,其中兩個留給X組,另外三個留給Y組。最好的方法是什麼?這,大概,我的代碼:flash as3創建多維數組的最佳方式

var newGroupArr:Array = new Array() //this will hold all members leaving for a new group 

for (k=0;k<memberClips.length;k++){ 
    if (memberClips[k].outcome == "new"){ 
     //for all groups where memberClips[k].group is the same, create a new array within newGroupArr for those similar members. 
    } 
} 

另外我想,如果我能做到,而無需通過所有成員多維數組,只是環說 - 對於其組相同的成員,執行此功能,以同一組的名稱作爲函數的參數傳遞。我想我遇到的麻煩是識別誰是一樣的。

This illustration shows the problem I'm having - if John Wetton is clicked, a line should be drawn only for him. But instead, a line is drawn for both he, david cross, and bill bruford, because they are all leaving for a new group. But david cross and bill bruford are actually going to a different group than john, so I need to make sure they are stored as members leaving for a new group, but I also need them grouped by the new band they are leaving for.

+0

do iu理解它是正確的,你需要創建一個數據結構,以便於訪問:a)按樂隊名稱列出成員名單,b)按人名扮演的樂隊列表? – www0z0k

+0

不是真的 - 它甚至比這更簡單。我正在繪製一種家譜,我只需要確保所有離開新組A的樂隊成員都有從舊組到新組的線條,而所有離開新組B的樂隊成員都有線條從舊的羣體到他們的新羣體。 – mheavers

+0

這可能有助於瞭解它的顯示方式。我想我明白你希望如何分組,但我不認爲需要多維數組。我會處理這個問題的方法是讓一個帶有歷史堆棧的樂隊成員類。我可以同時在一個以上的樂隊中演奏,它可能不像一個音樂盒那麼簡單,它可能是一個簡單的樹。我只是說,對我而言,歷史與該人的關係比樂隊更自然。 –

回答

1

,除非有一個理由,爲什麼你需要使用數組,我會使用一個字典,像這樣

var bands:Dicionary = new Dictionary(); 

for (k=0;k<memberClips.length;k++){ 
    if(memberClips[k].outcome=="new"){ 
     var newGroup:String = memberClips[k].group; 
     if(!bands[newGroup]){ 
      bands[newGroup] = new Array(); 
     } 
     bands[newGroup].push(k); 
    } 
} 

現在樂隊中的每個陣列將包含離開他們之前樂隊的成員