随机化XML文件

随机化XML文件,xml,arrays,actionscript-3,flash,Xml,Arrays,Actionscript 3,Flash,我正在做动作脚本3中的多项选择题测验,我想将我的问题和答案存储在一个XML文件中。当测验开始时,我想从XML文件中提取20个问题,并将它们随机排列。关于如何将XML文件中的所有问题和答案放入一个数组并随机化该数组,有什么想法吗 谢谢您的XML问题不是很具体,所以我假设您不知道从哪里开始。应该可以让您继续加载和解析XML 有了一系列问题后,您可以使用简单的循环和array.splice随机抽取20个问题,将它们移动到新的数组中: var questions:Array = new Array();

我正在做动作脚本3中的多项选择题测验,我想将我的问题和答案存储在一个XML文件中。当测验开始时,我想从XML文件中提取20个问题,并将它们随机排列。关于如何将XML文件中的所有问题和答案放入一个数组并随机化该数组,有什么想法吗


谢谢

您的XML问题不是很具体,所以我假设您不知道从哪里开始。应该可以让您继续加载和解析XML

有了一系列问题后,您可以使用简单的循环和array.splice随机抽取20个问题,将它们移动到新的数组中:

var questions:Array = new Array();
while(questions.length < 20) {
    questions.push(xmlQuestions.splice(Math.floor(Math.random() * xmlQuestions.length), 1));
}
var问题:数组=新数组();
while(问题长度<20){
push(xmlQuestions.splice(Math.floor(Math.random()*xmlQuestions.length))1);
}

这将选择一个介于0和n之间的随机索引(其中n是包含所有问题的数组的长度),并删除该元素,然后将其推入新数组。

首先,将每个问题及其答案的xml节点转换为一个内部类。这将使您更容易管理数据

这将输出类类型的对象数组。 然后你就这样洗牌了

myArray.sort( function( obj0:*,obj1:* ):Boolean{ return Math.random() < 0.5; } );
myArray.sort(函数(obj0:*,obj1:*):布尔{return Math.random()<0.5;});
然后你只需一个接一个地循环数组。由于您的数据位于对象本身,因此答案和其他相关内容将随对象在排序区域中移动。因此,您也不必排列相关的答案


注意:sort函数不关心它是什么对象类型,所以我使用universal type作为参数。

user1884296这个答案满足您的问题吗?