ActionScript3互动编程第三讲.ppt

上传人:牧羊曲112 文档编号:6501251 上传时间:2023-11-07 格式:PPT 页数:16 大小:323.97KB
返回 下载 相关 举报
ActionScript3互动编程第三讲.ppt_第1页
第1页 / 共16页
ActionScript3互动编程第三讲.ppt_第2页
第2页 / 共16页
ActionScript3互动编程第三讲.ppt_第3页
第3页 / 共16页
ActionScript3互动编程第三讲.ppt_第4页
第4页 / 共16页
ActionScript3互动编程第三讲.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《ActionScript3互动编程第三讲.ppt》由会员分享,可在线阅读,更多相关《ActionScript3互动编程第三讲.ppt(16页珍藏版)》请在三一办公上搜索。

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

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

3、格式如下:看下例,声明一个函数,功能是角度转换弧度。,function 函数名(参数1,参数2,.):返回类型/函数体,function toAngle(degree:Number):Numberreturn degree*Math.PI/180,采用这种方式进行定义的函数可以获得更加灵活的空间,稍后讨论。我们可以理解为:我们定义了一个变量,然后在内存中申请了一个内存空间并声明了一个匿名函数,将其引用赋值给了变量:,var 函数名=function(参数1,参数2,.):返回类型/函数体,2、函数表达式定义法格式,var toAngle=function(degree:Number):Numb

4、erreturn degree*Math.PI/180,2、两种定义法的区别函数语句定义法更标准在运行中执行顺序会提升,而后者则必须先定义再使用:,afun(开心);/报错:值非函数,这条必须注释掉,否则就把afun定义提前bfun(不开心);/成功var afun=function(w:String)trace(w);function bfun(s:String)trace(s);,var afun=function(w:String)trace(w);afun=null/函数被回收的例子,函数表达式定义法变量持有的引用一旦改变,函数体就会变成匿名函数,被垃圾回收机制回收:,4、函数的参数A

5、S3对函数的参数作了严格的设定,函数调用时参数的个数和类型要严格的和定义时保持一致,否则便一起就会报错:,bfun(不开心);/成功bfun(20)/错误1067:int 类型值的隐式强制指令的目标是非相关类型 String。bfun(20,20)/错误,1137:参数个数不正确。不应超过 1 个。function bfun(s:String)trace(s);,4、函数的参数AS3的函数参数传递的是引用:,var varA:Array=10,20,12var varB:Number=2function testFunc(a:Array,b:Number)a.push(100)b=10test

6、Func(varA,varB)trace(varA)trace(varB),4、函数的默认参数设定在定义函数时,可以为参数设定初始值,这是在调用该函数时如果没有指定该参数,编译器会自动调用该参数的默认值:,function testFunc(b:Number=20)trace(b)testFunc()/20testFunc(5)/5,4、不确定参数个数的函数,function testFunc(.rest)trace(传入的参数个数:+rest.length)for(var i=0;irest.length;i+)trace(resti)testFunc(1,4,开心),var func:Fu

7、nctionvar sexy:String=男if(sexy=男)func=boyFunelse if(sexy=女)func=girlFunfunction boyFun()trace(我是一个帅哥)function girlFun()trace(我是一个美女)func(),代理函数,function sexyFunc(type:*):Functionif(type=男)return boyFun;else if(type=女)return girlFun;elsereturn erroFun;,利用函数返回函数,function boyFun()trace(我是一个帅哥);function

8、 girlFun()trace(我是一个美女);function erroFun()trace(参数传入不符!);var chick:Function=sexyFunc(男);chick(),函数综合练习格式化时间函数的编写,function formatTime(h:*,m:*,s:*):Stringvar _h:String=format(h);var _m:String=format(m);var _s:String=format(s);var _result=_h+:+_m+:+_s;return _result;,function format(n:*):Stringvar _n=Number(n);if(_n10)_n=0+_n;else_n=_n;return String(_n);trace(formatTime(1,12,9),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号