Flash AS3.0三种间隔循环的表现方式
发布时间:2020-12-15 18:25:52 所属栏目:百科 来源:网络整理
导读:在本AS3.0教程中我们将学习到间隔循环的三种表现方式,希望对朋友们有所帮助~~ 如果想使动画不依赖于帧频,可使用3种方法: 1、setlnterval()函数 setlnterval()函数作用是每隔一定的时间,就调用函数 setlnterval()函数的形式为: setlnterval(函数名,时
在本AS3.0教程中我们将学习到间隔循环的三种表现方式,希望对朋友们有所帮助~~ 如果想使动画不依赖于帧频,可使用3种方法:
1、setlnterval()函数 setlnterval()函数作用是每隔一定的时间,就调用函数 setlnterval()函数的形式为: setlnterval(函数名,时间间隔,函数参数); 函数名是自定义的函数的名,时间间隔为毫秒,函数参数是自定义函数的参 下面制作一个计时器: //时间的初始值 var t:int; //定义一个无参函数 function time() { //输出时间 trace(++t / 10); } //每隔0.1秒调用一次函数 setInterval(time,100); 测试上面的代码,可在输出面板中看到时间以0.1秒在递增。 提示:setlnterval()函数每隔0.1秒调用一次函数,变量t以加1的方式进行递增,t除以10后可表示时间。 下面的代码调用一个有参函数: //定义一个有参函数 function test(message) { trace(message); } //每隔500毫秒调用一次函数,输出“调用函数” setInterval(test,500,"调用函数"); 清除setInterval()的调用,使用clearInterval()函数 提示:要及时清除setInterval()函数的调用,否则会导致setInterval()函数的重复调用。 2、setTimeout()函数 setTimeout()函数的使用方法与setlnterval()函数的使用方法相同,也是每隔一定时间就调用函数。 setTimeout()函数的一般形式为: setTimeout(函数名,时间间隔,函数参数); 调用一个无参函数: //自定义函数,输出信息 function test() { trace("函数调用"); } //每隔1000毫秒调用一次test(),输出信息。 setTimeout(test,1000); 清除setTimeout()的调用,使用clearTimeout()函数。 3、Timer类 AS3.0新增了Timer类来实现间隔调用程序,Timer类封装了许多属性、方法和事件。 使用Timer类不会像setInterval()重复积累调用,减少了出错的几率,可以自定义间隔时间,实现与帧频的脱离,是制作间隔效果的首选。 Timer类的构造函数有两个参数,第1个是以毫秒为单位的间隔数字,第2个是重复调用的次数。 创建Timer类的实例: var myTimer:Timer = new Timer(1000,3); 在构造函数Timer()中,间隔时间为1000毫秒,重复次数为3次,调用从数字1开始,向上递增,当次数等于3时,停止调用。 Timer类有4个属性,两个为只读属性,两个为读写属性: running属性:是只读属性,表示调用是否进行,如果处于调用状态,running的值为true,否则为false。currentCount属性:是只读属性,表示当前调用的次数。 delay属性:是读写属性,表示间隔调用的时间。 repeatCount属性:是读写属性,表示重复调用的次数。 Timer类有3个方法可调用: start()方法:用于启动调用 spop()方法:用于停止调用 reset()方法:用于重置调用 Timer类有两个事件,当开始调用时会发生timer事件,调用结束时会发生timerComplete事件。这两个事件都是TimerEvent类的属性,事件名分别为Timer.TIMER和Timer.TIMER_COMPLETE。 下面是制作计时器的实例: 1、新建Flash文档 2、在图层1的第1帧,创建一个实例名为time的动态文本实例。 3、添加as图层,单击第1帧,打开动作面板输入代码:
//定义时间间隔
var?interval:uint?=?100; //重复次数 var?repeat:uint?=?120; //创建实例 var?myTimer:Timer?=?new?Timer(interval,repeat); //注册timer事件 myTimer.addEventListener(TimerEvent.TIMER,timerHandler); //启动计时器 myTimer.start(); //定义事件的接收函数 function?timerHandler(event:TimerEvent):void { ????//得到Timer类的实例 var?timer:Timer?=?event.target; ????//计算秒数 var?t:Number?=?timer.currentCount?/?10; ????//保留1位小数 time.text?=?t.toFixed(1); } 每100毫秒调用函数一次,即间隔0.1秒,把次数除以10得到秒数。
站长资讯网
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |