请选择 进入手机版 | 继续访问电脑版
查看: 208|回复: 0

as3中定时器的使用方法-转载

[复制链接]

91

主题

95

帖子

430

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
430
发表于 2022-10-2 22:21:56 | 显示全部楼层 |阅读模式
使用Timer类的构 造函数“Timer(delay:Number,repeatCount:int=0)”可以直接创建一个功能完备的定时器。此函数包含两个参数,分别是 该类的delay属性和repeatCount属性。定时器创建后会保持停止,直到使用“start()”方法启动后,才会开始计时
引用包

import flash.events.TimerEvent;
import flash.utils.Timer;

使用方法

var myTimer:Timer=new Timer(500,100);
myTimer.addEventListener("timer", timerhandler);//注意,事件timer必须全部小写
myTimer.start();

private function timerhandler(event:TimerEvent):void{
        trace("1");
}

在定时器启动后,使用currentCount属性 查询当前累计触发次数,使用“stop()”方法可以停止一个定时器。需要指出的是:“stop()”方法不过是暂停了定时器,并没有清除定时器。当一个 定时器被“stop()”方法停止后,Timer对象的currentCount并没有被清除。当再次使用“start()”方法启动Timer对象时, 定时器将继续执行,直到触发次数达到repeatCount属性规定的数值。用户不能在代码中为CurrentCount赋值,要改变 currentCount属性,只能使用“reset()”方法。“reset()”方法可以清零定时器的currentCount属性。


setTimeOut、setInterval、Timer 的区别和用法

setTimeOut:设置超时时间,只会执行一次!

setInterval:设置一个间隔时间,间隔多久会触发一次!除非 remove,否则会永久执行下去!

Timer:设置一个间隔时间,有次数限制,只执行制定次数!

参数说明:

setTimeOut(函数名,延迟时间,参数);

setInterval(函数名,延迟时间,参数);

Timer(延迟时间,执行次数);


举例:

1.setTimeOut

package {

    import flash.display.Sprite;

    import flash.utils.*;

    public class SetTimeoutExample extends Sprite {

        private var delay:Number = 1000; // delay before calling myDelayedFunction         

        public function SetTimeoutExample() {

            var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World");

        }  

        public function myDelayedFunction():void {

            trace(arguments[0] + " " + arguments[1]);

        }

        public function clearTimeout():void  {

            if(intervalId>0) {

                         clearTimeout(intervalId);

              }

        }

    }

}


2.setInterval

package {

    import flash.display.Sprite;     import flash.utils.*;

    public class SetIntervalExample extends Sprite {

        private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds

        private var intervalId:uint;

        private var counter:uint     = 0;

        private var stopCount:uint     = 3;

        public function SetIntervalExample() {

            intervalId = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World");

        }

        public function myRepeatingFunction():void {

            trace(arguments[0] + " " + arguments[1]);

            counter++;

            if(counter == stopCount) {

                trace("Clearing Interval");

                clearInterval(intervalId);     

            }

        }

    }

}


3.Timer
package {
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.display.Sprite;
    public class TimerExample extends Sprite {
        public function TimerExample() {
            var myTimer:Timer= new Timer(1000, 2);
            myTimer.addEventListener("Timer", timerHandler);
            myTimer.start();
        }
        public function timerHandler(event:TimerEvent):void {
            trace("timerHandler: " + event);
        }
    }
}



课件素材:https://ysp0828.taobao.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|苏州奇乐多媒体

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4( 苏ICP备13057363号 )QQ

快速回复 返回顶部 返回列表