Egret社区
由于比较low,就不加入骗回复行列了[mw_shl_code=applescript,true]    private lastTime:number = 0;// 上次时间
    private totalTime:number = 0;// 累加时间
    private limitTime:number = 60;// 限定时间
    private timeLabel:egret.TextField;// 时间文本
    /**
     * 开始倒计时
     */
    public startCountDown() {
        // 创建时间文本
        this.timeLabel = new egret.TextField();
        this.timeLabel.width = 200;
        this.timeLabel.height = 50;
        this.timeLabel.x = 300;
        this.timeLabel.y = 300;
        this.addChild(this.timeLabel);
        // 获取时间
        this.lastTime = egret.getTimer();
        // 无指定动作的循环运动
        egret.Tween.get(this.timeLabel,{ loop: true,onChange: this.onChange,onChangeObj: this });
    }
   
    /**
     * 经测试该函数是固定 60帧/秒 的执行频率,不受index中的frameRate影响
     */
    private onChange(): void {
        var curTime = egret.getTimer();// 当前时间
        var deltaTime = curTime - this.lastTime;// 上一帧和本帧的时间差
        this.totalTime += deltaTime;// 累加时间差
        // 每过一秒更新一次
        if(this.totalTime >= 1000) {
            this.totalTime %= 1000;// 保留不够一秒的值
            this.limitTime--;// 限定时间减一秒
            var m = Math.floor(this.limitTime / 60);// 分
            var s = this.limitTime % 60;// 秒
            // 以00:00的格式显示时间。这里感觉写的不太好,但没找到合适的方法,有好用的请教教我,谢谢!
            this.timeLabel.text = (m > 9 ? "" : "0") + m + ":" + (s > 9 ? "" : "0") + s;
            // 时间结束,停止运动
            if(this.limitTime <= 0) {
                egret.log("time end");
                egret.Tween.removeTweens(this.timeLabel);
            }
            // 每帧旋转6度,模拟秒针运动
            this.timeLabel.rotation += 6;
        }
        this.lastTime = curTime;// 更新上一帧时间
    }[/mw_shl_code]
分享到 :
4 人收藏

4 个回复

倒序浏览
奋发向上的岩哥  斑竹 | 2016-7-21 10:21:46
路迷在海  登堂入室 | 2017-11-13 17:11:13
低等下人9527  登堂入室 | 2018-6-15 15:56:54
kkkkao  登堂入室 | 2018-6-27 16:50:36
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部