Actionscript 3 AS3-随机选择7帧中的5帧
您好,非常感谢您抽出时间。 我正试图为我的学生们做一个测验,开始按钮将变成随机的7帧。然后在落地框上,出现问题,通过单选按钮选择答案,然后通过另一个按钮提交到下一个随机问题。这需要发生5次,以便从7个问题中随机选择5个问题,并且不重复前面的任何问题。如果有人能给我指出正确的方向,我将不胜感激Actionscript 3 AS3-随机选择7帧中的5帧,actionscript-3,Actionscript 3,您好,非常感谢您抽出时间。 我正试图为我的学生们做一个测验,开始按钮将变成随机的7帧。然后在落地框上,出现问题,通过单选按钮选择答案,然后通过另一个按钮提交到下一个随机问题。这需要发生5次,以便从7个问题中随机选择5个问题,并且不重复前面的任何问题。如果有人能给我指出正确的方向,我将不胜感激 //Start Button - AS3 Frame #8157 startBtn.addEventListener(MouseEvent.CLICK, startQuiz); fu
//Start Button - AS3 Frame #8157
startBtn.addEventListener(MouseEvent.CLICK, startQuiz);
function startQuiz(event:MouseEvent):void{
}
//Submit Button with score count - AS3 Frame #8158
var count:Number = 0;
var mygroup1:RadioButtonGroup = new RadioButtonGroup("group1");
q1a1.group = q1a2.group = q1a3.group = q1a4.group = q1a5.group = mygroup1;
b1.addEventListener(MouseEvent.CLICK, quizHandler1)
function quizHandler1(event:MouseEvent):void{
if(mygroup1.selection.label=="B) 12") {
count = count + 20;
scoreresult.text = (count).toString();
var number_array:Array = [8158,8159,8160,8161,8162,8163,8164 ];
var final_array:Array = [];
var count_selected:int = 5;
var i:int;
for(i = 0; i < count_selected; i++)
{
if(number_array.length == 0)
break;
else
final_array.push(number_array.splice(Math.floor(Math.random() * number_array.length), 1)[0]);
}
trace(final_array);
}
}
//开始按钮-AS3帧#8157
startBtn.addEventListener(MouseEvent.CLICK,startQuiz);
函数startQuiz(事件:MouseEvent):void{
}
//带有分数计数的提交按钮-AS3帧#8158
变量计数:数值=0;
var mygroup1:RadioButtonGroup=新的RadioButtonGroup(“group1”);
q1a1.group=q1a2.group=q1a3.group=q1a4.group=q1a5.group=mygroup1;
b1.addEventListener(MouseEvent.CLICK,quizHandler1)
函数quizHandler1(事件:MouseEvent):void{
if(mygroup1.selection.label==“B)12”){
计数=计数+20;
scoresult.text=(count.toString();
变量编号_数组:数组=[81588159816081616816281638164];
var final_数组:数组=[];
选择的var计数:int=5;
变量i:int;
对于(i=0;i
因为不想重复相同的值,所以需要知道已经使用了哪些值。有很多方法可以做到这一点,但最直接的方法可能是将所有值放在一个数组中,然后删除一个随机值,直到数组为空。下面是一个例子:
// create an array with all the frames you want to visit
var frames:Array = [0, 1, 2, 3, 4, 5, 6];
// when you want to pick one randomly, remove it using splice
var frame:int = frames.splice(Math.random() * frames.length, 1)[0];
// when the array is empty, you've visited every frame
if(frames.length == 0)
trace("all done!");
以下是关于
splice()
:的文档,请看一下Math.random()谢谢Aaron。看来你给我指明了正确的方向。我使用了上面的代码,它似乎在工作。它从7个随机数中选择5个,它们是不重复的。请查看编辑后的版本。现在,剩下的唯一一件事是,我如何捕获生成的5个数字,以便将它们分配给要遵循的提交按钮(b1)?我在数组方法之前使用了gotoAndStop(Math.floor(Math.random)),但它会给出重复的数字。但是当我使用数组时,我很难找到在goto语句或类似语句中使用生成的数字的方法。谢谢。我不确定我是否理解。我没有看到gotoAndStop()
任意操作。由于您的final\u数组
包含帧编号,您可以直接将它们传递给gotoAndStop()
。例如,如果您想转到推入final\u数组的最后一帧
,只需执行gotoAndStop(final\u数组[final\u array.length-1])
Hey Aaron.我不得不打开另一个话题,因为新出现的难题超出了最初问题的目的。如果您感兴趣,这里是链接。