2025年06月04日 星期三 农历 乙巳年(蛇)五月初九

Flash ActionScript学习精简记录四

发布人:钱翠萍    发布时间:2013-11-21 点击量:2852

函数,指在程序中可以得利使用的代码块。它通过参数接收外部数据,也可以对外返回一个值。

如果没有自定义函数的调用代码,函数是不会执行的。

自定义函数的命名规则与标识符的命名原则相同。

 自定义函数方式:

 1.函数声明形式:

 Function 函数名(参数列表):返回值类型{//函数体}

参数列表:v1:Type,v2:Type…;定义参数时与定义变量时不相同,不需要使用var关键字;

声明与调用不分先后,只要同在当前范围内;

 2.函数表达式形式

Var f:Function=function(参数列表):返回值类型{//函数体};

参数列表与声明形式相同;

先定义后使用;

 函数的参数

1、实参与形参,与C语言中的概念相同;

2、默认参数(又称为可选参数),其值在定义时参数列表中即已有一可用值;若调用函数时未另作指定则使用默认值,若另作指定则使用指定的新值;但要注意:定义应从参数列表的最右边开始定义;

3rest参数(又称为不定参数),格式例如: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.0C语言不同:不存在块作用域的概念。ActionScript3.0中变量作用域的限定范围有函数或类({}这样的块限定不存在)这样在函数内或类中,允许先使用后定义的情况出现;只是出于习惯,不建议这样。

常用函数

1.基本类型转换函数

对应5种基本数据类型:uint(),int(),Number(),String(),Boolean();

2.调试函数trace();接受不定参数;

3.日期时间函数Date();返回时间格式为:

Day mon date hh:mm:ss tzd yyyy

4.验证函数isNaN()NaNNumber类型变量的默认值,当一个数学运算的结果无法用一个数值表示的时候会返回一个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()