




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ActionScript3互动编程,第三讲函数,前言函数是指,在程序中执行特定的任务并可重用的代码块。在面向过程中,称为闭包函数,在类体中,或与某个对象进行绑定称为该类或对象的方法。函数可接受外部传入的值也可返回运算的结果。,一个简单的例子:比如:我们现在有一个任务,就是让多个影片剪辑执行相同的运算即,沿着x轴向左移动,并且逐渐变小,最后消失。如果我们对每一个影片剪辑都输入相同的命令显然不是最佳的做法:,mc1.x+mc2.x+mc3.x+mc1.scaleX-=0.1mc2.scaleX-=0.1mc3.scaleX-=0.1,前例中只有三个影片剪辑,而且每个影片剪辑所作的属性操作也只有位置和缩放属性,我们还可以接受,如果是有很多影片剪辑呢?或者说如果是一项很复杂的任务需要几十行甚至上百行的代码才能完成,我们这种方法就不适用了。这时候我们就可以考虑把一项相对独立的任务写成一个特定的函数,用到时直接对该函数调用就可以了,这就是面向对象的精髓代码复用的概念了。函数是实现代码复用最简单的形式。,前例的改写,movies(mc1)movies(mc2)movies(mc3)functionmovies(mc:MovieClip):voidmc.x+mc.scaleX-=0.1,函数定义法函数的定义有两种方式:一种是函数语句定义法;另外一种是函数表达式定义法.1、函数语句定义法的格式如下:看下例,声明一个函数,功能是角度转换弧度。,function函数名(参数1,参数2,.):返回类型/函数体,functiontoAngle(degree:Number):Numberreturndegree*Math.PI/180,采用这种方式进行定义的函数可以获得更加灵活的空间,稍后讨论。我们可以理解为:我们定义了一个变量,然后在内存中申请了一个内存空间并声明了一个匿名函数,将其引用赋值给了变量:,var函数名=function(参数1,参数2,.):返回类型/函数体,2、函数表达式定义法格式,vartoAngle=function(degree:Number):Numberreturndegree*Math.PI/180,2、两种定义法的区别函数语句定义法更标准在运行中执行顺序会提升,而后者则必须先定义再使用:,afun(开心);/报错:值非函数,这条必须注释掉,否则就把afun定义提前bfun(不开心);/成功varafun=function(w:String)trace(w);functionbfun(s:String)trace(s);,varafun=function(w:String)trace(w);afun=null/函数被回收的例子,函数表达式定义法变量持有的引用一旦改变,函数体就会变成匿名函数,被垃圾回收机制回收:,4、函数的参数AS3对函数的参数作了严格的设定,函数调用时参数的个数和类型要严格的和定义时保持一致,否则便一起就会报错:,bfun(不开心);/成功bfun(20)/错误1067:int类型值的隐式强制指令的目标是非相关类型String。bfun(20,20)/错误,1137:参数个数不正确。不应超过1个。functionbfun(s:String)trace(s);,4、函数的参数AS3的函数参数传递的是引用:,varvarA:Array=10,20,12varvarB:Number=2functiontestFunc(a:Array,b:Number)a.push(100)b=10testFunc(varA,varB)trace(varA)trace(varB),4、函数的默认参数设定在定义函数时,可以为参数设定初始值,这是在调用该函数时如果没有指定该参数,编译器会自动调用该参数的默认值:,functiontestFunc(b:Number=20)trace(b)testFunc()/20testFunc(5)/5,4、不确定参数个数的函数,functiontestFunc(.rest)trace(传入的参数个数:+rest.length)for(vari=0;irest.length;i+)trace(resti)testFunc(1,4,开心),varfunc:Functionvarsexy:String=男if(sexy=男)func=boyFunelseif(sexy=女)func=girlFunfunctionboyFun()trace(我是一个帅哥)functiongirlFun()trace(我是一个美女)func(),代理函数,functionsexyFunc(type:*):Functionif(type=男)returnboyFun;elseif(type=女)returngirlFun;elsereturnerroFun;,利用函数返回函数,functionboyFun()trace(我是一个帅哥);functiongirlFun()trace(我是一个美女);functionerroFun()trace(参数传入不符!);varchick:Function=sexyFunc(男);chick(),函数综合练习格式化时间函数的编写,functionformatTime(h:*,m:*,s:*):Stringvar_h:String=format(h);var_m:String=format(m);var_s:String=format(s);var_result=_h+:+_m+:+_s;retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件显示备注
- 2025年中国双层炉排立式蒸汽锅炉数据监测研究报告
- 口语内容考试题及答案
- 植物检疫工岗位操作技能考核试卷及答案
- 溶剂油装置操作工操作考核试卷及答案
- 酒吧经理考试题及答案
- 景泰蓝点蓝工异常处理考核试卷及答案
- 禁止超车考试题及答案
- 2025年中国复盖件数据监测报告
- 偏钨酸铵制备工岗前考核试卷及答案
- 警惕“死亡游戏”(梦回大唐)守护校园安全主题班会课件
- 辅导机构创业路演
- 2025年穿脱隔离衣的试题及答案
- 激光束传输与变换-第八讲
- 《混凝土砖块机:混凝土砖块机技术》课件
- 2025年昭通市直事业单位选调(47人)高频重点模拟试卷提升(共500题附带答案详解)
- 2023年建筑三类人员(B类)考试题库(浓缩500题)
- 2024年中国高筋雪花粉市场调查研究报告
- 季度安全生产总结
- 《妇产科学》课件-7.2.3死胎
- 烧伤手术护理
评论
0/150
提交评论