我需要一个计时器的帮助。我想为游戏创建一个类似炸弹的数字倒数计时器。
我目前所拥有的是一个基本的倒数计时器,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();
}
}
如果没有基本的数字字体,我将不得不嵌入一个,我应该没问题,但是对其他两个问题的任何帮助将不胜感激。
很抱歉,如果代码到处都是,我是初学者。
感谢您的时间。
答案 0 :(得分:0)
我认为你已经大部分已经得到了它。您可以做的是在倒计时处理程序内部,只需检查该值是否小于10,如果是,则在显示之前在前面添加0。
countdown--;
if(countdown < 10){
output.text = "0" + countdown.toString();
} else {
output.text = countdown.toString();
}
然后更改颜色,它将是相同的逻辑,检查您希望它改变颜色的数字,然后更改TextFormat对象中的颜色并将其应用于TextField。
对于数字字体,您可以搜索并嵌入数字字体到闪存中,但如果您只需要数字/有限字符,您也可以制作一个电影剪辑/图形,因为它们相对简单。取决于你需要它的程度,我想以及它的灵活性。