在 Flash 中创建倒数计时器时出错
Error in creating countdown timer in Flash
我正在尝试使用找到的代码在 Flash CS5.5 中添加计时器。但似乎我已经纠正了一些错误,但我的输出仍然效果不佳。错误是 access undefined 属性 of txt。
任何人都可以帮我检查一下吗?提前致谢!
GameOver.visible = false;
timerFunction(0, 12);
function timerFunction(minutes, seconds)
{
var seconds = seconds;
var minutes = minutes;
var clock;
var tmr = setInterval(timer, 1000);
function timer() {
seconds--;
if (seconds < 0) {
minutes--;
seconds = 59;
}
if (minutes == 0 && seconds == 0) {
clearInterval(tmr);
GameOver.visible = true;
}
clock = minutes + "0" + seconds;
if (seconds < 10) {
if (minutes < 10) {
clock = "0" + minutes + ":0" + seconds;
}
} else {
if (minutes < 10) {
clock = "0" + minutes + "1" + seconds;
} else {
clock = minutes + "1" + seconds;
}
}
txt.embedFonts = false;
txt.text = clock;
}
}
这是我的 zip 文件。
https://www.dropbox.com/s/evm5alnbypty41y/Untitled-3.rar?dl=0
只需在舞台上添加一段文字并将其命名为 "txt"
或
通过在行首添加这些行以编程方式完成
import flash.text.TextField;
var txt:TextField = new TextField ;
txt.embedFonts = true ;
addChild(txt);
使用以下代码(已测试)
import flash.utils.Timer;
import flash.events.TimerEvent;
var seconds:int ;
var minutes:int ;
var totalTimeInSeconds:int
var ticker:int ;
var tmr:Timer ;
function timerFunction(minutes, seconds)
{
totalTimeInSeconds = minutes * 60 + seconds
tmr = new Timer (1000,totalTimeInSeconds);
tmr.addEventListener(TimerEvent.TIMER,timerClick);
tmr.addEventListener(TimerEvent.TIMER_COMPLETE,timerComplete) ;
tmr.start() ;
}
timerFunction(2, 15)
function timerClick (e:TimerEvent):void
{
var curMinute:int = Math.floor((totalTimeInSeconds - ticker)/60) ;
var curSecond:int = (totalTimeInSeconds - ticker) - (curMinute*60) ;
txt.text = curMinute + ":" + curSecond;
ticker +=1 ;
}
function timerComplete (E:TimerEvent):void
{
txt.text = "0:0" ;
tmr.removeEventListener(TimerEvent.TIMER,timerClick);
tmr.removeEventListener(TimerEvent.TIMER_COMPLETE,timerComplete) ;
}
我正在尝试使用找到的代码在 Flash CS5.5 中添加计时器。但似乎我已经纠正了一些错误,但我的输出仍然效果不佳。错误是 access undefined 属性 of txt。 任何人都可以帮我检查一下吗?提前致谢!
GameOver.visible = false;
timerFunction(0, 12);
function timerFunction(minutes, seconds)
{
var seconds = seconds;
var minutes = minutes;
var clock;
var tmr = setInterval(timer, 1000);
function timer() {
seconds--;
if (seconds < 0) {
minutes--;
seconds = 59;
}
if (minutes == 0 && seconds == 0) {
clearInterval(tmr);
GameOver.visible = true;
}
clock = minutes + "0" + seconds;
if (seconds < 10) {
if (minutes < 10) {
clock = "0" + minutes + ":0" + seconds;
}
} else {
if (minutes < 10) {
clock = "0" + minutes + "1" + seconds;
} else {
clock = minutes + "1" + seconds;
}
}
txt.embedFonts = false;
txt.text = clock;
}
}
这是我的 zip 文件。 https://www.dropbox.com/s/evm5alnbypty41y/Untitled-3.rar?dl=0
只需在舞台上添加一段文字并将其命名为 "txt"
或
通过在行首添加这些行以编程方式完成
import flash.text.TextField;
var txt:TextField = new TextField ;
txt.embedFonts = true ;
addChild(txt);
使用以下代码(已测试)
import flash.utils.Timer;
import flash.events.TimerEvent;
var seconds:int ;
var minutes:int ;
var totalTimeInSeconds:int
var ticker:int ;
var tmr:Timer ;
function timerFunction(minutes, seconds)
{
totalTimeInSeconds = minutes * 60 + seconds
tmr = new Timer (1000,totalTimeInSeconds);
tmr.addEventListener(TimerEvent.TIMER,timerClick);
tmr.addEventListener(TimerEvent.TIMER_COMPLETE,timerComplete) ;
tmr.start() ;
}
timerFunction(2, 15)
function timerClick (e:TimerEvent):void
{
var curMinute:int = Math.floor((totalTimeInSeconds - ticker)/60) ;
var curSecond:int = (totalTimeInSeconds - ticker) - (curMinute*60) ;
txt.text = curMinute + ":" + curSecond;
ticker +=1 ;
}
function timerComplete (E:TimerEvent):void
{
txt.text = "0:0" ;
tmr.removeEventListener(TimerEvent.TIMER,timerClick);
tmr.removeEventListener(TimerEvent.TIMER_COMPLETE,timerComplete) ;
}