从数组中调用随机函数
Call a random function from an array
我在数组中列出了三个函数。现在我需要在按下按钮时调用这三个函数中的一个随机函数。但是,当我按下按钮时,它会调用所有三个函数,但我不太确定哪里出错了。现在看起来像这样:
function Arm1function1(){
this.parent.parent.parent.Armfront1.visible = true;
this.parent.parent.parent.Armback1.visible = false;
}
function Arm1function2(){
this.parent.parent.parent.Armfront1.visible = false;
this.parent.parent.parent.Armback1.visible = true;
}
function Arm1function3(){
this.parent.parent.parent.Armfront1.visible = false;
this.parent.parent.parent.Armback1.visible = false;
}
function getRandomElementOf(Armbuttonarray1:Array):Object {
var Armbuttonarray1:Array = [Arm1function1(), Arm1function2(), Arm1function3()];
var idx:int=Math.floor(Math.random() * Armbuttonarray1.length);
return Armbuttonarray1[idx];
}
Randombutton1part1.addEventListener(MouseEvent.CLICK, Randombutton1part1Click);
function Randombutton1part1Click(e:MouseEvent):void
{
getRandomElementOf(null);
}
知道我哪里出错了吗?
你的问题是这一行:
var Armbuttonarray1:Array = [Arm1function1(), Arm1function2(), Arm1function3()];
填充该数组时,您实际上是在用函数的结果填充它。
应该是:
var Armbuttonarray1:Array = [Arm1function1, Arm1function2, Arm1function3];
注意缺少括号 ().
您想在点击处理程序上实际执行该函数,因此您也需要稍微调整一下:
getRandomElementOf(null)();
或
getRandomElementOf(null).call();
顺便说一句,您的 getRandomElementOf 函数应该看起来更像这样:
function getRandomElementOf(array:Array):Object {
return array[Math.floor(Math.random() * array.length)];
}
然后做:
getRandomElementOf([Arm1function1, Arm1function2, Arm1function3])();
我在数组中列出了三个函数。现在我需要在按下按钮时调用这三个函数中的一个随机函数。但是,当我按下按钮时,它会调用所有三个函数,但我不太确定哪里出错了。现在看起来像这样:
function Arm1function1(){
this.parent.parent.parent.Armfront1.visible = true;
this.parent.parent.parent.Armback1.visible = false;
}
function Arm1function2(){
this.parent.parent.parent.Armfront1.visible = false;
this.parent.parent.parent.Armback1.visible = true;
}
function Arm1function3(){
this.parent.parent.parent.Armfront1.visible = false;
this.parent.parent.parent.Armback1.visible = false;
}
function getRandomElementOf(Armbuttonarray1:Array):Object {
var Armbuttonarray1:Array = [Arm1function1(), Arm1function2(), Arm1function3()];
var idx:int=Math.floor(Math.random() * Armbuttonarray1.length);
return Armbuttonarray1[idx];
}
Randombutton1part1.addEventListener(MouseEvent.CLICK, Randombutton1part1Click);
function Randombutton1part1Click(e:MouseEvent):void
{
getRandomElementOf(null);
}
知道我哪里出错了吗?
你的问题是这一行:
var Armbuttonarray1:Array = [Arm1function1(), Arm1function2(), Arm1function3()];
填充该数组时,您实际上是在用函数的结果填充它。
应该是:
var Armbuttonarray1:Array = [Arm1function1, Arm1function2, Arm1function3];
注意缺少括号 ().
您想在点击处理程序上实际执行该函数,因此您也需要稍微调整一下:
getRandomElementOf(null)();
或
getRandomElementOf(null).call();
顺便说一句,您的 getRandomElementOf 函数应该看起来更像这样:
function getRandomElementOf(array:Array):Object {
return array[Math.floor(Math.random() * array.length)];
}
然后做:
getRandomElementOf([Arm1function1, Arm1function2, Arm1function3])();