2014-02-12 47 views
1

我在Flash/AS3中創建了一個益智遊戲。它使用大約30到40個單詞組。我想要做的就是在遊戲開始時加載一組隨機單詞,並在使用它們之後,我想加載另一個隨機組,等等。解決這個問題的最好方法是什麼?我應該使用基於隨機數的switch語句來選擇多個數組還是我應該將它們全部放入一個多維數組中?每組單詞最多可包含2000個單詞。在AS3中使用多個數組的高效方法

回答

0

最好使用xml來創建詞組並輕鬆地將其拉出。所以,我的意思是,使用多維數組很有效率。

var wordgroups:Array = new Array(); 
wordgroups.push(new Array("word1", "word3", "word5"), new Array("word2", "word4", "word6")); //you can easily create whole this multidimensional array with xml 

wordgroups.shuffle(); //shuffles array (flashpunk library have this function, you may check it out and clone it's function if you can) 

var selectedwordgroup:Array; 
selectedwordgroup = wordgroups.pop(); //you can easily take a word group from that array and it removes selected wordgroup from the "wordgroups" array automatically with pop() function. 

什麼東西XML

那是一個樣本* .xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<wordstuff> 
    <wordgroups> 
     <group>word1,word2,word3,word4,word5,word6</group> 
     <group>word7,word8,word9,word10,word11,word12</group> 
     <group>word13,word14,word15,word16,word17,word18</group> 
    </wordgroups> 
</wordstuff> 

,這是拉從XML數據的樣本(你要嵌入您的XML的東西到你的遊戲,所以,你不需要任何的url加載器對象,你可以像嵌入圖像文件一樣嵌入它,但有一點區別) 然後你就可以用這個嵌入式xml創建數組了

var pulledgroups:Array = new Array(); 

var my_xml:XML = WORDSTUFF //that's embedded file 
var wordgroups:XMLList = my_xml.wordgroups.group; 
var group:XML; 
for each (group in wordgroups) 
{ 
    var pulledwordgroup:Array = group.split(","); 
    pulledgroups.push(pulledwordgroup); 
} 

這一切,這種單一的代碼段,在同一時間

+0

拉的所有數據,但最好還是不要使用「洗牌」的東西,你的方式可以更好的表現,我的意思是使用隨機數及採取隨機數組從wordgroups ... –

+0

如何從XML創建這些數組? – milano

+0

這很容易,我會給我的答案添加一個小例子,只需一分鐘 –

相關問題