function average():Number
{
var sum:Number = 0;
for(var i=0;i<arguments.length;i++)
{
sum += arguments[i];
}
return sum/arguments.length;
}
{
var sum:Number = 0;
for(var i=0;i<arguments.length;i++)
{
sum += arguments[i];
}
return sum/arguments.length;
}
var a:Number = average(1,2,3);
trace("a:",a);
trace("a:",a);
用arguments的方法让函数接收多个变量会报错“变量个数与定义的函数不匹配”,但把上述代码中的函数定义改成如下:
function average(
x:Number,y:Number,z:Number):Number
{
var sum:Number = 0;
for(var i=0;i<arguments.length;i++)
{
sum += arguments[i];
}
return sum/arguments.length;
}
{
var sum:Number = 0;
for(var i=0;i<arguments.length;i++)
{
sum += arguments[i];
}
return sum/arguments.length;
}
var a:Number = average(1,2,3);
trace("a:",a);
trace("a:",a);
代码工作正常,就是说AS3里的arguments只能是起到得到函数变量数量的作用,但不能让实现类似...args的任意多个参数的功能,
但AS3的帮助文档里明确有写...args和arguments都可以实现任意变量的情况,不知道是不是文档有误,有待进一步研究。
欢迎知道原因的朋友们给一些建议,最好是有编译通过的AS3实例文档,不胜感激!