AS3,将变量添加到函数名称

时间:2012-07-04 00:29:53

标签: actionscript-3 function variables actionscript

我有6个函数,名为callClip1,callClip2,callClip3等。

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

由于

2 个答案:

答案 0 :(得分:4)

这可以通过开关块完成:

用作: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]();
}

答案 1 :(得分:2)

除了Jason的回答,您还可以这样做:

// 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]();
}