ActionScript 3.0是否提供了接受任意数量参数的方法?我通常使用.NET,但是我被迫使用AS3进行项目,并且函数blah(params double [] x)的内容对于帮助程序库来说非常棒。
感谢;
答案 0 :(得分:14)
查看其余参数:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/statements.html#..._(rest)_parameter
package {
import flash.display.MovieClip;
public class RestParamExample extends MovieClip {
public function RestParamExample() {
traceParams(100, 130, "two"); // 100,130,two
trace(average(4, 7, 13)); // 8
}
}
}
function traceParams(... rest) {
trace(rest);
}
function average(... args) : Number{
var sum:Number = 0;
for (var i:uint = 0; i < args.length; i++) {
sum += args[i];
}
return (sum / args.length);
}
答案 1 :(得分:3)
尝试椭圆(如C)......
function trace_all (... args): void {
for each (a in args) {
trace (a);
}
}
答案 2 :(得分:2)
function foo() {
for (var i:Number = 0; i < arguments.length; i++) {
trace(arguments[i]);
}
}
答案 3 :(得分:0)
如果要传递未确定数量的有序值,只需传递一个数组
function foobar(values:Array):void
{
...
}
foobat([1.0, 3.4, 4.5]);
foobat([34.6, 52.3, 434.5, 3344.5, 3562.435, 1, 1, 2, 5]);
如果要传递命名参数,只传递其中一些参数,则使用对象
function woof(params:object):string
{
if (params.hasProperty('name')) {
return name + "xxx";
}
...
}
woof({name:'Joe Blow', count: 123, title: 'Mr. Wonderful'});