AS3基础教程-第13课-函数
1、什么是函数:
AS3中的函数与数学课上我们所学的函数并不相同。
在AS3内,函数是被设计为“执行多条命令的容器”。
我们可以将很多行的代码,放入一个函数体内,在后面的代码中,只要访问这个函数体,就可以自动执行函数体内部的多行代码。
2、函数的优点:
由上面的描述可知,如果某个作品内,某一段代码要重复使用多次,就可以将这段代码包含在一个函数内部,届时只需调用函数的名字,就可以瞬间实现目的。
而且,函数可以带参数,从而实现不同的功能。
1、函数的声明格式:
<1>与变量的声明不同,函数声明的格式如下:
function 函数名(参数1:数据类型,参数2:数据类型,参数3:数据类型...):返回值类型{
//函数需要执行的多行命令
//如果定义了返回值类型,必须由 return语句返回一个相应数据类型的值
}
<2>函数的调用格式如下:
函数名(参数1,参数2,参数3...)
==========================
看起来晕晕的吧,其实共有多种声明的方式,现分开用不同的例子来阐述
2、第一种情况:无参数、无返回值类型
代码如下:
//声明:
function myFun(){
trace("你好")
}
//调用:
myFun()
这是最简单的一种函数。未设置参数,也没有设定返回值类型,仅用于执行函数体内设定好的命令而已。这里的命令只有一行,实际情况下应该有多行。
3、第二种情况:无参数、有返回值类型
代码如下:
//声明
function myFun():String{
return("你好")
}
//调用
trace(myFun())
本例实现的效果和上例一样,只不过表现形式上并不相同。本例也没有设置参数,但是设定了返回值类型是String类型,此时就必须在函数体内使用return语句指明返回的值(必须是对应的String数据类型)
4、第三种情况:有参数、无返回值类型
代码如下:
//声明
function myFun(name:String,age:uint){
trace(name+age+"岁了。")
}
//调用
myFun("小华",10)
myFun("小红",9)
输出结果:
小华10岁了。
小红9岁了。
这就是带参数的函数的强悍之处,通过调用时传入不同的对象,flash就可以按照自己设计时的要求进行相应的反馈。反馈的模式都是一样的,只不过具体数值不同而已。
无论是声明函数、还是调用函数,如果有多个参数,参数之间都必须以逗号隔开。
当然,可以只有一个参数,此时函数名后面紧跟的小括号内只有一个参数,自然不存在逗号了。
5、第四种情况:有参数、有返回值类型
代码如下:
//声明
function myFun(author:String):String{
return("本例由"+author+"设计制作")
}
//调用
trace(myFun("网雨霏霏"))
输出结果:本例由网雨霏霏设计制作
注意,本例与上例稍有不同。本例要求有返回值类型(String类型),则必须在函数体内部加上return语句,否则会报错。
本例的参数只设置了一个,其实还可以视需求设置多个参数(参数之间用逗号隔开)
1、当声明函数时,如果定义了参数,则有两种情况可供选择:
<1>参数可以没有默认值(上面的例子都是这种情况):
那么,在后续 调用函数的时候,就必须给参数设置具体的数值,否则会报错。比如说,在第四种情况的最后一行,修改为
trace(myFun())
就会报错,因为没有设置参数的具体值。
<2>也可以有默认值。
如果给参数设定了默认值,在调用时,可以有参数的具体值,也可以不带参数。见下例:
//声明
function myFun(author:String="网雨霏霏"):String{
return("本例由"+author+"设计制作")
}
//调用
trace(myFun())
输出结果:本例由网雨霏霏设计制作