将任意数量的参数传递给AS3中的函数

时间:2016-07-13 21:43:27

标签: function actionscript-3 flash parameters

如何将任意数量的参数传递给函数?

当调用未知函数(来自String)时,我想将参数传递给该函数。参数存储在数组中:

var arr:Array = ["param1","param2"];

arr中可能有任意数量的元素。函数中也可以包含任意数量的参数,并且数字可能彼此不同。

到目前为止,我一直在这样做来调用函数:

this[functionName](parameter);

但这只允许一个参数。无论需要多少,我如何获得所有这些内容?

编辑:要清楚,我想以相同的方式访问该功能,但我不知道它可能有多少参数。我想将一组参数转储到一个未知函数中。我不确定函数有多少参数,我通常假设数组的长度等于函数中的参数数量(如果出现任何错误,将抛出错误,这是细)。

2 个答案:

答案 0 :(得分:1)

实现使用Function#apply()方法。

对于你的例子:

this[functionName].apply(null, arr);

答案 1 :(得分:0)

另一种可能做到这一点的方法是:

function myFunction(arg:String, arg2:String, ... args)

args不是关键字。然后调用函数:

 myFunction("foo","bar","sink",12,);

我昨天刚发现这个并用它来传递动画的关键帧:

function animateChar(o:Sprite, startFrame:int, rec:Rectangle, ...keyFrames):void
    // loop like keyFrames is an Array
    trace(keyFrames[i])

and called it like this:

animateChar(character,5,myRec,{f:3,t:2},{f:2,t:2},{f:1,t:2});