1

我有 6 个函数,分别称为 callClip1、callClip2、callClip3 等。

我曾计划写出 6 个 else/if 语句,以便在需要时调用其中的每一个,但我认为它可以(可能)以另一种方式完成。我可以调用一个名为“callClip”的函数并在其末尾添加一个我在其他地方设置的变量吗?那么如果变量设置为 3,它会将 callClip + 3 放在一起并调用该函数吗?

谢谢

4

2 回答 2

4

这可以通过一个 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]();
}
于 2012-07-04T00:34:38.387 回答
2

添加到杰森的答案,你也可以这样做:

// 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]();
}
于 2012-07-04T01:02:55.860 回答