我有 6 个函数,分别称为 callClip1、callClip2、callClip3 等。
我曾计划写出 6 个 else/if 语句,以便在需要时调用其中的每一个,但我认为它可以(可能)以另一种方式完成。我可以调用一个名为“callClip”的函数并在其末尾添加一个我在其他地方设置的变量吗?那么如果变量设置为 3,它会将 callClip + 3 放在一起并调用该函数吗?
谢谢
我有 6 个函数,分别称为 callClip1、callClip2、callClip3 等。
我曾计划写出 6 个 else/if 语句,以便在需要时调用其中的每一个,但我认为它可以(可能)以另一种方式完成。我可以调用一个名为“callClip”的函数并在其末尾添加一个我在其他地方设置的变量吗?那么如果变量设置为 3,它会将 callClip + 3 放在一起并调用该函数吗?
谢谢
这可以通过一个 switch 块来完成:
用作: callClip(1);
function callClip(number:int):void
{
switch(number)
{
case 1:
callClip1();
break;
case 2:
callClip2();
break;
case 3:
callClip3();
break;
case 4:
callClip4();
break;
case 5:
callClip5();
break;
case 6:
callClip6();
break;
}
}
虽然我不推荐它,但这也可以实现为:
function callClip(number:int):void
{
this["callClip" + number]();
}
添加到杰森的答案,你也可以这样做:
// Store references to each method.
var methods:Vector.<Function> = new <Function>[
callClip1, callClip2, callClip3,
callClip4, callClip5, callClip6
];
// Call relevant callClip function.
function callClip(num:int):void
{
methods[num-1]();
}