了解和认识函数
在编程中有一个很重要的内容那就是函数,合理使用函数可起到事半功倍的效果。函数是可以重复利用的代码块,就像类里面封装好的方法一样。
函数从外观上看,是一个语句块,包含着至少一条或数条语句,从逻辑上看,它是可以执行某个目标任务的代码块,可以接受外部传入的对象或值,还可以返回操作的结果。
AS3中函数分为两类:方法(Method)和函数闭包(Function closures)如果将函数定义为类定义的一部分或者将它与某个对象绑定,则该函数称为方法。
AS3中的函数发生了很大的变化,删除了很多全局函数。但这并不表示它的功能减弱了,反而使整个结构更加清晰。
AS3.0的全局函数主要有下面几类:
· trace()函数
· int()、Number()等类型转换函数
· isNaN()函数
这些函数在AS3中称顶级函数,可以在程序的任何位置调用。
还有一些函数在一定的包内,包可以理解为本地硬盘中的文件夹,通过文件夹可以管理不同的文件。同样,不同的包可以管理不同的函数和类。
如果在时间轴上编程,不用理会函数在哪个包内,但进行类编程时,如果使用包内的函数,必须要先导入包,才能使用这些函数。
从面向对象编程的角度来说,函数就是方法,方法是在类中定义的函数。方法可以分为实例方法和类方法,在时间轴中自定义的函数都属于实例方法。
例如,在主时间轴上定义下面的函数:
function test()
{
}
函数test()就是实例root的方法,可以通过“实例名.方法名()”来调用函数:
root.test();
又因为this关键字是指向当前实例,所以也可以这样调用:
this.test();
在实例的当前位置调用函数时,可省略实例名,直接调用函数:
test();
用function定义函数就像使用var和const定义变量一样,定义函数使用function关键字。
函数定义的一般形式:
function 函数名(参数列表):数据类型
{
//代码块
}
其中:函数名用来说明函数的功能
函数根据需要可以向函数中传递外部的变量即参数,如果不需要传递参数,则不需要加入参数,这样的函数叫无参函数。如果函数需要传递参数,这样的函数叫有参函数。
函数中的代码块可以返回一些数据,数据可以是简单数据类型,也可以是复杂数据类型。数据类型表示函数返回的数据类型,当不需要返回数据时,数据类型应标识为void,意思为没有返回值。
用“()”调用函数
调用函数的常用形式为:
函数名(参数)
“()”是调用函数的语法,可以向“()”内传递参数。
traceMsg();
function traceMsg():void
{
trace("this is function");
}
测试代码在输出面板中可看到"this is function"。
修改上面的函数:
function traceMsg(msg:*):void
{
trace(msg);
}
此时的函数有了一个参数,参数实际是变量。
向函数传递数据
//输出this is function
traceMsg("this is function");
//输出2
traceMsg(2);
//输出true
traceMsg(true);
类里面有许多方法,方法可看成是在类中定义的函数,调用类的方法的语法也是一样的。
下面的代码调用了MovieClip类的stop()方法
mc.stop();