ActionScript3互动编程第三讲

ActionScript3互动编程第三讲

ID:38830659

大小:260.32 KB

页数:16页

时间:2019-06-20

ActionScript3互动编程第三讲_第1页
ActionScript3互动编程第三讲_第2页
ActionScript3互动编程第三讲_第3页
ActionScript3互动编程第三讲_第4页
ActionScript3互动编程第三讲_第5页
资源描述:

《ActionScript3互动编程第三讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ActionScript3互动编程第三讲函数前言函数是指,在程序中执行特定的任务并可重用的代码块。在面向过程中,称为闭包函数,在类体中,或与某个对象进行绑定称为该类或对象的方法。函数可接受外部传入的值也可返回运算的结果。一个简单的例子:比如:我们现在有一个任务,就是让多个影片剪辑执行相同的运算即,沿着x轴向左移动,并且逐渐变小,最后消失。如果我们对每一个影片剪辑都输入相同的命令显然不是最佳的做法:mc1.x++mc2.x++mc3.x++mc1.scaleX-=0.1mc2.scaleX-=0.1mc

2、3.scaleX-=0.1前例中只有三个影片剪辑,而且每个影片剪辑所作的属性操作也只有位置和缩放属性,我们还可以接受,如果是有很多影片剪辑呢?或者说如果是一项很复杂的任务需要几十行甚至上百行的代码才能完成,我们这种方法就不适用了。这时候我们就可以考虑把一项相对独立的任务写成一个特定的函数,用到时直接对该函数调用就可以了,这就是面向对象的精髓——代码复用的概念了。函数是实现代码复用最简单的形式。前例的改写movies(mc1)movies(mc2)movies(mc3)functionmovies(mc

3、:MovieClip):void{mc.x++mc.scaleX-=0.1}函数定义法函数的定义有两种方式:一种是函数语句定义法;另外一种是函数表达式定义法.1、函数语句定义法的格式如下:看下例,声明一个函数,功能是角度转换弧度。function函数名(参数1,参数2,...):返回类型{//函数体}functiontoAngle(degree:Number):Number{returndegree*Math.PI/180}采用这种方式进行定义的函数可以获得更加灵活的空间,稍后讨论。我们可以理解为:我

4、们定义了一个变量,然后在内存中申请了一个内存空间并声明了一个匿名函数,将其引用赋值给了变量:var函数名=function(参数1,参数2,...):返回类型{//函数体}2、函数表达式定义法格式vartoAngle=function(degree:Number):Number{returndegree*Math.PI/180}2、两种定义法的区别函数语句定义法更标准在运行中执行顺序会提升,而后者则必须先定义再使用:afun("开心");//报错:值非函数,这条必须注释掉,否则就把afun定义提前bf

5、un("不开心");//成功varafun=function(w:String){trace(w)};functionbfun(s:String){trace(s);}varafun=function(w:String){trace(w)};afun=null//函数被回收的例子函数表达式定义法变量持有的引用一旦改变,函数体就会变成匿名函数,被垃圾回收机制回收:4、函数的参数AS3对函数的参数作了严格的设定,函数调用时参数的个数和类型要严格的和定义时保持一致,否则便一起就会报错:bfun("不开心")

6、;//成功bfun(20)//错误1067:int类型值的隐式强制指令的目标是非相关类型String。bfun("20","20")//错误,1137:参数个数不正确。不应超过1个。functionbfun(s:String){trace(s);}4、函数的参数AS3的函数参数传递的是引用:varvarA:Array=[10,20,12]varvarB:Number=2functiontestFunc(a:Array,b:Number){a.push(100)b=10}testFunc(varA,va

7、rB)trace(varA)trace(varB)4、函数的默认参数设定在定义函数时,可以为参数设定初始值,这是在调用该函数时如果没有指定该参数,编译器会自动调用该参数的默认值:functiontestFunc(b:Number=20){trace(b)}testFunc()//20testFunc(5)//54、不确定参数个数的函数functiontestFunc(...rest){trace("传入的参数个数:"+rest.length)for(vari=0;i

8、trace(rest[i])}}testFunc(1,"4","开心")varfunc:Functionvarsexy:String="男"if(sexy=="男"){func=boyFun}elseif(sexy=="女"){func=girlFun}functionboyFun(){trace("我是一个帅哥")}functiongirlFun(){trace("我是一个美女")}func()代理函数functionsexyFunc(type:*):

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。