函数,指在程序中可以得利使用的代码块。它通过参数接收外部数据,也可以对外返回一个值。
如果没有自定义函数的调用代码,函数是不会执行的。
自定义函数的命名规则与标识符的命名原则相同。
自定义函数方式:
1.函数声明形式:
Function 函数名(参数列表):返回值类型{//函数体}
参数列表:v1:Type,v2:Type…;定义参数时与定义变量时不相同,不需要使用var关键字;
声明与调用不分先后,只要同在当前范围内;
2.函数表达式形式
Var f:Function=function(参数列表):返回值类型{//函数体};
参数列表与声明形式相同;
先定义后使用;
函数的参数:
1、实参与形参,与C语言中的概念相同;
2、默认参数(又称为可选参数),其值在定义时参数列表中即已有一可用值;若调用函数时未另作指定则使用默认值,若另作指定则使用指定的新值;但要注意:定义应从参数列表的最右边开始定义;
3、rest参数(又称为不定参数),格式例如:function myFun(i:uint,…args){//函数体};“…”表示此为一不定参数;args用于指代这一不定参数;
不定参数只能定义于参数列表的最右边位置;
可以将不定参数视为数组,通过length属性得到实际传入此参数的参数个数,按照读取数组元素的方法读取各参数;例如:function myFun(i:uint,…args){
For(var j:uint;j
Trace(args[j]);}}
4、函数参数的传递方式与C语言中一样,有传值方式、传址方式;当参数类型为数组或者对象等复杂数据类型时,参数传递过程为传址方式;否则,为传值方式;
参数对象:在函数中可以使用arguments关键字访问传入函数中的参数信息;可以将arguments视为数组,通过length取得参数个数并按数组元素的访问方法进行访问;arguments有一个特殊的属性:callee,它用于对函数本身的访问;这样就可以通过这个参数递归调用函数自身了。
不定参数与参数对象arguments不可以同时使用;
函数对象:在函数对象中有一个只读属性:length,用于保存函数中定义的形参个数;也可以使用复杂数据的方法(赋值)给函数添加新的属性,如添加一个记录函数调用次数的属性(静态属性)。
参数对象、函数对象体现出了AS3.0的面向对象;
函数的返回值:在函数中使用return语句返回;可以返回常量、变量、表达式或其他函数,如果需要返回多个值可以包装到数组或对象中,然后返回该数组或对象;
Return语句也可以没有返回值,仅仅作为函数结束的出口;
函数的返回值类型指定:在定义函数时参数列表后以冒号加数据类型的方式定义,如不需要返回值也可以使用void关键字表示;
函数的嵌套调用,即在函数定义中调用其它函数;函数的递归调用,即在函数定义中调用了函数自身;
函数的嵌套定义,即在一个函数体内声明另外的函数;嵌套定义的函数只有在该函数中调用,不能在该函数外调用;
变量的作用域:能够访问到该变量的代码范围;
局部变量,变量仅在某函数或类中可以被访问;同一作用域内不允许出现两个相同的变量名;
全局变量,在所有代码范围内都可见的变量;
当一个变量在所有函数之外定义时,这个变量可以被函数内及函数外的代码所访问;ActionScript3.0面向对象的编程思想里,应尽量避免全局变量的使用,所以取消了global关键字;ActionScript3.0已经不存在真正意义上的全局变量了。
变量名重叠:在一个作用域内全局变量与局部变量重叠,局部变量会覆盖全局变量;
ActionScript3.0与C语言不同:不存在块作用域的概念。ActionScript3.0中变量作用域的限定范围有函数或类({}这样的块限定不存在)这样在函数内或类中,允许先使用后定义的情况出现;只是出于习惯,不建议这样。
常用函数
1.基本类型转换函数
对应5种基本数据类型:uint(),int(),Number(),String(),Boolean();
2.调试函数trace();接受不定参数;
3.日期时间函数Date();返回时间格式为:
Day mon date hh:mm:ss tzd yyyy
4.验证函数isNaN();NaN是Number类型变量的默认值,当一个数学运算的结果无法用一个数值表示的时候会返回一个NaN值;程序中不可以使用“==”运算符去判断是否为NaN,只有通过isNaN()函数判断;
5.时间轴函数:
gotoAndPlay()跳转到指定位置并播放
gotoAndStop()跳转到指定位置并停止
nextFrame()跳转到下一帧并停止
prevFrame()跳转到前一帧并停止
play()从当前位置开始播放
stop()停止播放
nextScene()跳转到下一个场景
prevScene()跳转到前一个场景
6.拖动函数
startDrag()开始拖动
stopDrag()停止拖动
mouse.hide()/mouse.show()鼠标的隐藏与显示
7.碰撞测试函数
DisplayObject类的两个相似方法:
hitTestPoint()判断是否与指定点重合,可指定是实际内容为准还是以外接矩形为准;
hitTestObjet()判断与指定对象是否重合,以外接矩形为判断标准;
8.定时函数
setInterVal()/clearInterVal();
setTimeOut()/clearTimeOut();
9.fscommand()函数,让swf和播放器或包含播放器的对象之间通信;
10.添加显示对象函数
addChild(),addChildAt();注意第二个函数可以指定添加对象的深度;
11.转换为字符串函数toString()。