在AS3中使用多个阵列的有效方法

时间:2014-02-12 19:23:07

标签: actionscript-3

我正在Flash / AS3中创建一个益智游戏。它使用大约30到40组单词。我想要做的是在游戏开始时加载一组随机单词,在使用它们之后,我想加载另一个随机组,依此类推。解决这个问题的最佳方法是什么?我是否应该使用基于随机数的switch语句选择多个数组,还是应该将它们全部放入一个多维数组中?每组单词最多可包含2000个单词。

1 个答案:

答案 0 :(得分:0)

最好使用xml创建wordgroup并轻松地将它们拉出来。所以,我的意思是,你使用多维数组是有效的。

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);
}

这就是所有,这个单一代码段落,同时提取所有数据