我是flash 5.5的新手,我正在尝试为我的小学生建立一个测验。 到目前为止,我已经制作了布局,创建了图像按钮,我习惯于as3来推进测验。
所以我正在寻找的是能够改变图像按钮/答案的能力。以下是我到目前为止的样本。
the red ______
apple (button of apple) boy (button of boy) pineapple (button with pineapple)
在我的例子中,图片是按钮,正确答案是苹果。经过数小时的谷歌搜索,我试图创建一个数组。这是我的代码,我做错了但我不知道是什么。请帮忙。
请帮忙。
function Main() {
var button:Array = [];
button.push("choice1");
button.push("choice2");
button.push("choice3");
ShuffleArray(button);
trace(button);
}
function ShuffleArray(button:Array)
{
for (var i:int = button.length-1; i >=0; i--)
{
var randomIndex:int = Math.floor(Math.random()*(i+1));
var itemAtIndex:Object = button[randomIndex];
button[randomIndex] = button[i];
button[i] = itemAtIndex;
提前谢谢。
提前谢谢。
答案 0 :(得分:1)
尝试更像这样的事情:
protected var button:Array=[choice1, choice2, choice3];//note no quotes, puts in the actual objects
function Main() {
super();
randomArray=shuffleArray(button);
var prevX:int = 0;
var space:int = 10;
//places the buttons from left to right in the order
//they were in the random array
//uses existing y
for (var i:int=0; i<randomArray.length; i++) {
var btn:DisplayObject = randomArray[i] as DisplayObject;
btn.x = prevX;
prevX = btn.x + btn.width + space;
}
}
protected function shuffleArray(inArray:Array):Array {
//create copy of array so as not to alter it
var tempArray = new Array().concat(inArray);
//resultarray (we'll be destroying the temp array)
var resultArray:Array = [];
while(tempArray.length>0) {
var index:int = int(Math.random() * tempArray.length);
//delete object from random location and put it into result array
resultArray.push(tempArray.splice(index, 1)[0]);
}
return resultArray;
}
请注意,这假设您使用的是文档类,并且您的按钮已经位于同一y位置的舞台上。