【发布时间】:2013-04-25 21:58:52
【问题描述】:
我有一个游戏,其目标是射击尽可能多(随机生成)的敌舰,但我想添加一个 30 秒倒计时到零的计时器以添加时间限制,但我不确定如何我会做?我有几个 AS 文件,其中包含我的所有代码,可以以不同的速度生成不同大小的船等等,所以如果需要 sn-ps 的代码,我会添加它们。
我尝试过这样做,但没有成功:
var gameTime:Number = 30;
var gameTimer:Timer;
static var timeText:TextField = new TextField();
timeText = new TextField();
timeText.x = 560;
timeText.y = 0;
timeText.text = gameTime.toString();
addChild(timeText);
gameTimer = new Timer(30000, gameTime);
gameTimer.addEventListener(TimerEvent.TIMER, gameTimeCount);
gameTimer.start();
function gameTimeCount(e:TimerEvent):void
{
gameTime--;
timeText.text = gameTime.toString();
}
但计数保持在 30 并且没有下降。
我现在拥有的:
【问题讨论】:
-
您将计时器设置为每滴答声 30000 毫秒。那是30秒。你希望它是 1000,也就是 1 秒。这就是您应该更新的频率。
-
你没有更新你的 timeHeader。我在
updateTime处理程序//update your user interface as needed中发表了评论。尝试将此行添加到该处理程序 --timeHeader.text = "Time : " + String(gameTime);- 它对我来说非常有效。 -
我刚刚剪切/粘贴了您上面的代码,它可以完美运行。你的页面有多宽?您是否有可能将文本字段 timeText 放置在舞台外?你的舞台宽度是多少?
-
我查看了您的文件,这是您如何为使文本消失的文本字段设置字体格式的问题。柜台工作得很好。在最初设置文本之前使用
timeText.defaultFormat = scoreFormat;。请接受我的回答,因为它工作得很好。如果您还有其他格式问题,只需针对该主题提出一个新问题。
标签: actionscript-3 flash flash-cs6