ActionScript3互动编程第三讲课件

上传人:txadgkn****dgknqu... 文档编号:252913954 上传时间:2024-11-23 格式:PPT 页数:16 大小:80.50KB
返回 下载 相关 举报
ActionScript3互动编程第三讲课件_第1页
第1页 / 共16页
ActionScript3互动编程第三讲课件_第2页
第2页 / 共16页
ActionScript3互动编程第三讲课件_第3页
第3页 / 共16页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,ActionScript 3 互动编程,第三讲 函数,ActionScript 3 互动编程第三讲 函数,1,前言,函数是指,在程序中执行特定的任务并可重用的代码块。在面向过程中,称为闭包函数,在类体中,或与某个对象进行绑定称为该类或对象的方法。,函数可接受外部传入的值也可返回运算的结果。,前言,2,一个简单的例子:,比如:我们现在有一个任务,就是让多个影片剪辑执行相同的运算即,沿着x轴向左移动,并且逐渐变小,最后消失。如果我们对每一个影片剪辑都输入相同的命令显然不是最佳的做法:,mc1.,x,+,mc2.,x,+,mc3.,x,+,mc1.,scaleX,-=0.1,mc2.,scaleX,-=0.1,mc3.,scaleX,-=0.1,一个简单的例子:mc1.x+,3,前例中只有三个影片剪辑,而且每个影片剪辑所作的属性操作也只有位置和缩放属性,我们还可以接受,如果是有很多影片剪辑呢?或者说如果是一项很复杂的任务需要几十行甚至上百行的代码才能完成,我们这种方法就不适用了。这时候我们就可以考虑把一项相对独立的任务写成一个特定的函数,用到时直接对该函数调用就可以了,这就是面向对象的精髓代码复用的概念了。函数是实现代码复用最简单的形式。,前例中只有三个影片剪辑,而且每个影片剪辑所作的属性操作也只有,4,前例的改写,movies(mc1),movies(mc2),movies(mc3),function,movies(mc:,MovieClip,):,void,mc.,x,+,mc.,scaleX,-=0.1,前例的改写movies(mc1),5,函数定义法,函数的定义有两种方式:一种是函数语句定义法;另外一种是函数表达式定义法.,1、函数语句定义法的格式如下:,看下例,声明一个函数,功能是角度转换弧度。,function 函数名(参数1,参数2,.):返回类型,/函数体,function,toAngle(degree:,Number,):,Number,return,degree*,Math.PI,/180,函数定义法function 函数名(参数1,参数2,.),6,采用这种方式进行定义的函数可以获得更加灵活的空间,稍后讨论。我们可以理解为:我们定义了一个变量,然后在内存中申请了一个内存空间并声明了一个匿名函数,将其引用赋值给了变量:,var 函数名=function(参数1,参数2,.):返回类型,/函数体,2、函数表达式定义法格式,var,toAngle=,function,(degree:,Number,):,Number,return,degree*,Math.PI,/180,采用这种方式进行定义的函数可以获得更加灵活的空间,稍后讨论。,7,2、两种定义法的区别,函数语句定义法更标准在运行中执行顺序会提升,而后者则必须先定义再使用:,afun(开心);/报错:值非函数,这条必须注释掉,否则就把afun定义提前,bfun(不开心);/成功,var,afun=,function,(w:,String,),trace,(w),;,function,bfun(s:,String,),trace,(s);,2、两种定义法的区别afun(开心);/报错:值非函数,8,var,afun=,function,(w:,String,),trace,(w),;,afun=null,/函数被回收的例子,函数表达式定义法变量持有的引用一旦改变,函数体就会变成匿名函数,被垃圾回收机制回收:,var afun=function(w:String)函数,9,4、函数的参数,AS3对函数的参数作了严格的设定,函数调用时参数的个数和类型要严格的和定义时保持一致,否则便一起就会报错:,bfun(不开心);/成功,bfun(20)/错误1067:int 类型值的隐式强制指令的目标是非相关类型 String。,bfun(20,20)/错误,1137:参数个数不正确。不应超过 1 个。,function bfun(s:String),trace(s);,4、函数的参数bfun(不开心);/成功,10,4、函数的参数,AS3的函数参数传递的是引用:,var varA:Array=10,20,12,var varB:Number=2,function testFunc(a:Array,b:Number),a.push(100),b=10,testFunc(varA,varB),trace(varA),trace(varB),4、函数的参数var varA:Array=10,20,1,11,4、函数的默认参数设定,在定义函数时,可以为参数设定初始值,这是在调用该函数时如果没有指定该参数,编译器会自动调用该参数的默认值:,function testFunc(b:Number=20),trace(b),testFunc()/20,testFunc(5)/5,4、函数的默认参数设定function testFunc(b,12,4、不确定参数个数的函数,function testFunc(.rest),trace(传入的参数个数:+rest.length),for(var i=0;irest.length;i+),trace(resti),testFunc(1,4,开心),4、不确定参数个数的函数function testFunc(,13,var func:Function,var sexy:String=男,if(sexy=男),func=boyFun,else if(sexy=女),func=girlFun,function boyFun(),trace(我是一个帅哥),function girlFun(),trace(我是一个美女),func(),代理函数,var func:Function代理函数,14,function sexyFunc(type:*):Function,if(type=男),return boyFun;,else if(type=女),return girlFun;,else,return erroFun;,利用函数返回函数,function boyFun(),trace(我是一个帅哥);,function girlFun(),trace(我是一个美女);,function erroFun(),trace(参数传入不符!);,var chick:Function=sexyFunc(男);,chick(),function sexyFunc(type:*):Func,15,函数综合练习格式化时间函数的编写,function formatTime(h:*,m:*,s:*):String,var _h:String=format(h);,var _m:String=format(m);,var _s:String=format(s);,var _result=_h+:+_m+:+_s;,return _result;,function format(n:*):String,var _n=Number(n);,if(_n10),_n=0+_n;,else,_n=_n;,return String(_n);,trace(formatTime(1,12,9),函数综合练习格式化时间函数的编写function for,16,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!