|
Adobe flash cs3 ActionScript 3.0入门(6) 代码:
// 命名函数
function doubleNumber(num:Number):Number {
return num*2;
}
代码:
// 相同功能的未命名函数。 var doubleNumber:Function = function(num:Number):Number {
return num*2;
}
如果一个函数没有返回值,那么它返回的类型将是void.当一个类型为void的函数被执行,或使用返回命令返回数值失败时,它的返回值变为undefined. 代码:
function returnsNothing():void {
// do nothing
}
trace(returnsNothing()); // trace的结果为undefined.
上面的returesNothing()函数不光没有返回任何内容,而且也不接收任何数值---它没有参数列表。在ActionScript3中如果你试图向一个没有参数列表的函数中传递参数,你将会得到一个错误。 代码:
returnsNothing(3); // 错误:不正确的参数值
在ActionScript 2中,Void类型被用于做为函数的参数列表定义,用来标识此函数没有参数。在ActionScript 3.0中,你只将要参数列表留空即可。 注意:parameters和arguments是不同的,parameters(参数)是用在函数的定义中。Arguments是在函数中应用的真正的值。你可以把arguments看作是参数值。 在ActionScript 3中,你可能够只接在函数参数中定义默认值。 代码:
// 这里,message参数是任意指定的。 function usesDefault(message:String = "hello"):void {
trace(message);
}
usesDefault("test"); // trace结果为 "test" usesDefault(); // trace结果为"hello",即默认值。
使用默认参数值,你不但可以得到一个指定的默认参数值,而且可以让你定义的函数可以有任意的参数,甚至是不被使用的参数。在函数调用时,那些没有默认值的参数必须要提供,基于这一点,所有的自由定义的有默认值的参数都要定义在参数列表之后。你不能把那些必须的参数定义在自由定义的有默认值的参数之后。 代码:
// 错误:没有必须的参数 // num定义在了message之后。 function usesDefault(message:String = "hello", num:Number):void {
// code
}
代码:
// 正确; usesDefault至少需要一个参数,最大是两个参数
// least 1 argument, accepts 2 at max
function usesDefault(num:Number, message:String = "hello"):void {
// code
}
那么如何让一个函数在调用时可以有任意数量的参数呢?,在ActionScript 2.0中,你只需要简单的删去参数列表然后通过引用arguments对象即可。在ActionScript 3.0中,已经没有了真正的参数列表,这意味着使用任何argument的函数将无法被调用。取而代之的是,你不得不使用一个新的参数类型为…(rest其它).它放置在你的参数列表之后(或者它就是你的整个参数),当调用函数时你可以使用任意数量的参数。…(rest)参数要被写成如下格式…[argumentsArrayName],arrgumentsArrayName是一个数组,它用来承载所传递的参数。
|