函数声明格式:
function函数名(参数:类型):返回值类型
{ //函数名;即函数的名称(调用函数的时候会用到)
函数的语句 //function:声明函数的意思
}
就像使用var和const定义变量和常量一样,定义函数要使用function关键字。
函数名用来说明函数的功能,因此,函数名的命名最好能见名知意。如,getSpeed表示获取速度
setSpeed代表设置速度,nextFrame代表播放到下一帧,toString代表转换为字符串。
根据需要,可以向代码中传递参数,不需要加入参数,这样的函数叫无参函数;如,stop()函数
就是一个无参函数。需要传递参数,这样的函数叫有参函数;如trace()函数就是有参函数,可以向
这个函数传递一个或多个参数.
import flash.events.MouseEvent;
mc.addEventListener("click",onClick);
function onClick(e:MouseEvent):void
{
mc.x=mc.x+5;
}
在上面的代码中,定义了名为onClick的函数,这个函数有个参数e,其数据类型是类类型
(即MouseEvent),并且,用void标明这个函数没有返回值。
注意看第一行代码:
mc.addEventListener("click",onClick);
函数或方法addEventListener()有两个参数:第一个参数为click,代表单击事件名;第二个参数
是onClick,即函数名。也就是说第二个参数传递的是函数的引用。
形式参数实际参数:
max(5,7);
function max(x:int,y:int):int
{
if(x>y)
{
x=x;
}else
{
x=y;
}
return x;
}
提示:
一个函数有返回值,可以使用“return”语句,并且在定义函数时需声明返回值的类型。
定义函数时,括号中的变量称为形式参数,简称形参。如定义max()函数时的x和y就是形式参数。
在调用函数时,函数名后面括号中的变量或表达式称为实际参数,简称实参。如调用max()函数
时的5和7.
函数实参可以是任意数据类型的变量或表达式。如:
//常数作为实参
max(5,7);
var a:int=1;
var b:int=5;
//变量作为实参
max(a,b);
var c:int=2;
var d:int=4;
//表达式作为实参
max(c,c+d);
下面函数求两点之间的距离:
var d:Number =distance(100,200,100,100);//调用函数,并把返回值赋值给变量d
trace(d); //输出距离
function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
{
var x:Number =x1-x2;//计算两个x坐标之差
var y:Number =y1-y2;//计算两个y坐标之差
var dis:Number =Math.sqrt(x*x+y*y);//求出距离
return dis;//返回距离
}
求两点间距离的函数有4个形参。对于形参很多的函数,可用对象来代替,用对象p1代表第一个点
的坐标,用p2代表第二个点的坐标,如:
var d:Number=distance({x:100,y:200},{x:100,y:100});
trace(d);
function distance(p1:Object ,p2:Object ):Number
{
var x:Number=p1.x-p2.x;
var y:Number=p1.y-p2.x;
var dis:Number=Math.sqrt(x*x+y*y);
return dis; //Math.sqrt()表示对括号内的值进行开根号
}
定义对象一般用“new Object()”的形式,但也可以通过“{}”运算符来定义对象。例如,
“{x:100,y:200}”相当于下面的代码:
var obj1:Object =new Object();
obj1.x=100;
obj1.y=200;