Flash定时器

本文介绍了Flash中的计时器Timer类及其在动画中的应用。计时器与enterFrame事件不同,可以控制动画速度,但实际效果仍受帧频影响。使用updateAfterEvent方法能提高刷新精度,而基于时间的动画能实现更精确、帧频独立的速度控制。文章通过实例探讨了如何实现基于时间的动画,确保物体运动速度的一致性。
摘要由CSDN通过智能技术生成

基于计时器的动画 

     作为计时器动画使用的关键类,不出意料,它就是 flash.utils.Timer。同时我们还需要 

flash.events.TimerEvent  类。 

     使用计时器实际上与使用 enterFrame  没什么两样。只需要我们去创建一个计时器

(Timer),告诉它多久“滴答响”一声,并侦听 TimerEvent.TIMER  事件,就像对 

Event.ENTER_FRAME  事件的侦听一样。哦,还要告诉计时器何时开始!接下来,计时器

就会每隔一段时间广播一个计时事件,它将调用赋给它的函数进行处理。计时器触发的间隔

 

以毫秒为单位,在创建该计时器时指定。让我们来看一个简单的例子(可在 Timer1.as  中找

到): 

package { 

 import flash.display.Sprite; 

 import flash.utils.Timer; 

 import flash.events.TimerEvent; 

  public class Timer1 extends Sprite { 

    private var timer:Timer; 

    public function Timer1() { 

   init(); 

  } 

    private function init():void { 

   timer = new Timer(30); 

   timer.addEventListener(TimerEvent.TIMER, onTimer); 

   timer.start(); 

  } 

    private function onTimer(timer:TimerEvent):void { 

   trace("timer!"); 

  } 

 } 

} 
 重要的部分加粗表示。我们创建一个计时器,告诉它每隔 30  毫秒触发一次,意味着每秒约 

33  次。添加一个事件的侦听器并将它起动。 onTimer  方法与我们以前用的 onEnterFrame 

类似。 

     这是我们所要知道计时器的大部分内容。它还有其它两个漂亮的特征。一个是在创建计

时器时,可以通过第二个参数,repeatCount,告诉它运行的次数。假设我们要让计时器每秒

运行一次,总共执行 5 秒。就可以这样做: 

    timer = new Timer(1000, 5); 

如果没有指定重复的次数,或传入 0,那么计时器将无限地运行。 

     另一个好东西是可以让计时器在某个点上启动或停止,只需要调用 timer.stop  或 

timer.start  即可。在某些例子中,这样做比删除和重新加入事件侦听器更简单一些。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值