AS3定时器 - 将零添加到单个数字倒计时,更改字体颜色

时间:2013-09-21 21:41:26

标签: actionscript-3 flash colors fonts timer

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

  1. 使用数字字体
  2. 总是两位数,例如10,09 ... 01,00(看起来像炸弹计时器)。
  3. 最后在最后几秒钟内,将字体变为红色以增加戏剧效果。
  4. 我目前所拥有的是一个基本的倒数计时器,20-0。倒计时变量从20开始,每1000毫秒减少一个,并且该数字显示在文本字段中。 但是字体是通用的,一旦计数低于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();
        }
    
    }
    

    如果没有基本的数字字体,我将不得不嵌入一个,我应该没问题,但是对其他两个问题的任何帮助将不胜感激。

    很抱歉,如果代码到处都是,我是初学者。

    感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我认为你已经大部分已经得到了它。您可以做的是在倒计时处理程序内部,只需检查该值是否小于10,如果是,则在显示之前在前面添加0。

countdown--;
if(countdown < 10){
    output.text = "0" + countdown.toString();
} else {
    output.text = countdown.toString();
}

然后更改颜色,它将是相同的逻辑,检查您希望它改变颜色的数字,然后更改TextFormat对象中的颜色并将其应用于TextField。

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