Actionscript 3 如何检查函数的无限参数(…参数)

Actionscript 3 如何检查函数的无限参数(…参数),actionscript-3,flash,Actionscript 3,Flash,如果我有功能: function a( param:* , ... args ):void ; a.length // 1 flash.utils.sdescribeType(a); //return me informations only about first parameter , nothing about '... args'. 编辑:avmplus.descripbetypeJSON也没有帮助 那么,除了try{}block和push lot参数之外,还有其他方法检查无限参数

如果我有功能:

function a( param:* , ... args ):void ;
a.length // 1


flash.utils.sdescribeType(a);
//return me informations only about first parameter , nothing about '... args'.
编辑:avmplus.descripbetypeJSON也没有帮助

那么,除了try{}block和push lot参数之外,还有其他方法检查无限参数吗


//编辑Kodiak

您只能在函数中检查它

Function().length
返回函数愿意接受的已定义参数编号

..args参数就像您所说的无限。因此,您无法在函数之外检查它的长度

Function().length
您只能在函数内部执行此操作,因此请编写一些“桥接”函数:

function bridgeToMain ( ...args ) : Number
{
    trace ( args.length );
    trace ( mainFunction.length );
}

我不明白你说的“连描述类型都只返回第一个参数的信息”这句话。恐怕我也一样,只获取第一个参数的信息。我不知道还有别的办法(但问题是我需要从函数外部了解它,以检查我可以推送多少参数通过它。从内部看,这将是清晰而简单的:)@turbosqel,但如果使用…args,则可以传递任意数量的参数。这就是重点!我知道,但这不是重点。我需要的是在运行时知道,funciton有无限制的参数(…args)或没有:]我想检查有多少参数可以应用于function.length限制的函数,或者我想要多少参数。turbosqel我明白你的意思。(也许您可以检查param类型是否为数组?)但是这会引起一些警钟。也许有更好的方法来实现你的目标。你能提供一个具体的例子吗?你想做的事情只有在try/catch语句中才能实现。