Actionscript 3 AS3定时器-将零添加到一位数倒计时,更改字体颜色

Actionscript 3 AS3定时器-将零添加到一位数倒计时,更改字体颜色,actionscript-3,flash,colors,fonts,timer,Actionscript 3,Flash,Colors,Fonts,Timer,我需要一个计时器的帮助。我想为游戏创建一个炸弹般的数字倒数计时器 使用数字字体 始终是两位数,例如10,09…01,00(看起来像炸弹计时器) 最后在最后几秒钟,将字体变成红色以增加戏剧性 我现在有一个基本的倒计时计时器,20-0。倒计时变量从20开始,每1000ms减少一个,该数字显示在文本字段中。 但是字体是通用的,一旦计数低于10,数字前面就没有零,我不知道如何在最后几秒钟改变字体颜色 public class UsingATimer extends Sprite { //The

我需要一个计时器的帮助。我想为游戏创建一个炸弹般的数字倒数计时器

  • 使用数字字体
  • 始终是两位数,例如10,09…01,00(看起来像炸弹计时器)
  • 最后在最后几秒钟,将字体变成红色以增加戏剧性 我现在有一个基本的倒计时计时器,20-0。倒计时变量从20开始,每1000ms减少一个,该数字显示在文本字段中。 但是字体是通用的,一旦计数低于10,数字前面就没有零,我不知道如何在最后几秒钟改变字体颜色

    public class UsingATimer extends Sprite
    {
        //The Timer object
        public var timer:Timer= new Timer(1000, countdown);
        public var countdown:Number = 20;
    
        //The Text objects
        public var output:TextField = new TextField();
        public var format:TextFormat = new TextFormat();
    
        public function UsingATimer()
        {
            //Initialize the timer
            output.text = countdown.toString();
            timer.addEventListener(TimerEvent.TIMER, countdownHandler);
            timer.start();
    
            //Set the text format object
            format.font = "Helvetica";
            format.size = 200;
            format.color = 0x000000;
            format.align = TextFormatAlign.RIGHT;
    
            //Configure the output text field   
            output.defaultTextFormat = format;
            output.autoSize = TextFieldAutoSize.RIGHT;
            output.border = false;
            output.text = "20";
    
            //Display and position the output text field
            stage.addChild(output);
            output.x = 200;
            output.y = 100;
    
        }
        public function countdownHandler(event:TimerEvent):void
        {
            countdown--;
            output.text = countdown.toString();
        }
    
    }
    
    如果没有基本的数字字体,我将不得不嵌入一个,我应该可以,但任何其他两个问题的帮助将不胜感激

    对不起,如果代码到处都是,我是初学者


    谢谢你的时间。

    我想你基本上已经拿到了。您可以在倒计时处理程序中执行此操作,只需检查值是否小于10,如果小于10,则在显示之前在前面添加0

    countdown--;
    if(countdown < 10){
        output.text = "0" + countdown.toString();
    } else {
        output.text = countdown.toString();
    }
    
    倒计时--;
    如果(倒计时<10){
    output.text=“0”+倒计时.toString();
    }否则{
    output.text=countdown.toString();
    }
    
    然后,要更改颜色,这将是相同的逻辑,检查要更改颜色的数字,然后更改TextFormat对象中的颜色并将其应用于TextField


    对于数字字体,您可以搜索并嵌入到flash中,但如果您只需要数字/有限的字符,您也可以使用电影剪辑/图形制作一个,因为它们相对简单。我想这取决于你需要它的花式程度和灵活性。

    将零预填充到0到99之间的数字是最简单的方法吗
    output.text=((倒计时<10)?“0”:“”)+倒计时谢谢你们的帮助,先生们。除了我在换颜色方面有困难外,一切正常。我尝试了if(倒计时<5){format.color=0xFF0000;}else{format.color=0x000000;},但似乎不起作用。我忘记了什么简单的事情?哦,我添加了一个额外的输出;这就成功了。谢谢