Actionscript 3 as3定时器不停止,也不会重置

Actionscript 3 as3定时器不停止,也不会重置,actionscript-3,flash,timer,actionscript,adobe,Actionscript 3,Flash,Timer,Actionscript,Adobe,我正在actionscript 3中构建一个时钟,我希望能够启动、停止和重置计时器。我一开始就在工作。我让其他人工作,但突然什么都没有?我不确定这是否是因为我添加了更多的代码并在时间线中添加了额外的关键帧,但肯定不是因为启动计时器工作 下面是我的代码: import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.MouseEvent; var time = new Date(); var secon

我正在actionscript 3中构建一个时钟,我希望能够启动、停止和重置计时器。我一开始就在工作。我让其他人工作,但突然什么都没有?我不确定这是否是因为我添加了更多的代码并在时间线中添加了额外的关键帧,但肯定不是因为启动计时器工作

下面是我的代码:

import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;

var time = new Date();
var seconds = time.seconds;
var minutes = time.minutes;
var hours = time.hours;

var myTimer: Timer = new Timer(1000);
var secondTimer: Timer = new Timer(12000); //12 seconds

myStartButton.addEventListener(MouseEvent.CLICK, startTimer);
myStopButton.addEventListener(MouseEvent.CLICK, stopTimer);
myResetButton.addEventListener(MouseEvent.CLICK, resetTimer);

myTimer.addEventListener(TimerEvent.TIMER, secondAndMinuteRotate);
secondTimer.addEventListener(TimerEvent.TIMER, hourRotate);


function startTimer(event: MouseEvent): void
{
    myTimer.start();
    secondTimer.start();
}

function stopTimer(event: MouseEvent): void
{
    myTimer.stop(); //here's my issue
    secondTimer.stop();
}

function resetTimer(event: MouseEvent): void
{
    myTimer.reset(); //and here's my other issue
    secondTimer.reset();
}


function secondAndMinuteRotate(event: TimerEvent): void
{
    mySecondHand.rotation += 6;
    myMinuteHand.rotation += 0.1;
}

function hourRotate(event: TimerEvent): void
{
    myHourHand.rotation += 0.1; 
}

if (hours < 12)
{
    amOrPm.text = "AM";
}
else if (hours > 12)
{
hours = hours - 12;
}


if(hours < 10)
{
    hours = "0" + hours;
}
if(minutes < 10)
{
    minutes = "0" + minutes;
}

if(seconds < 10)
{
    seconds = "0" + seconds;
}

digitalText.text = hours + ':' + minutes + ':'+ seconds;
导入flash.utils.Timer;
导入flash.events.TimerEvent;
导入flash.events.MouseEvent;
变量时间=新日期();
var seconds=time.seconds;
var minutes=time.minutes;
var hours=time.hours;
var myTimer:Timer=新定时器(1000);
var secondTimer:定时器=新定时器(12000)//12秒
myStartButton.addEventListener(MouseEvent.CLICK,startTimer);
myStopButton.addEventListener(MouseEvent.CLICK,stopTimer);
myResetButton.addEventListener(MouseEvent.CLICK,resetTimer);
myTimer.addEventListener(TimerEvent.TIMER,秒和分钟);
secondTimer.addEventListener(TimerEvent.TIMER,hourRotate);
函数startTimer(事件:MouseEvent):void
{
myTimer.start();
secondTimer.start();
}
函数stopTimer(事件:MouseEvent):void
{
myTimer.stop();//这是我的问题
secondTimer.stop();
}
函数重置计时器(事件:MouseEvent):无效
{
myTimer.reset();//这是我的另一个问题
secondTimer.reset();
}
函数Second和MinuteRotate(事件:TimerEvent):无效
{
mySecondHand.rotation+=6;
myMinuteHand.rotation+=0.1;
}
函数hourRotate(事件:TimerEvent):void
{
myHourHand.rotation+=0.1;
}
如果(小时数<12)
{
amOrPm.text=“AM”;
}
否则,如果(小时数>12)
{
小时=小时-12;
}
如果(小时<10)
{
小时数=“0”+小时数;
}
如果(分钟<10)
{
分钟=“0”+分钟;
}
如果(秒<10)
{
秒=“0”+秒;
}
digitalText.text=小时+':'+分钟+':'+秒;

添加
停止()在第一帧的代码中。

您能提供FLA文件吗?您的代码看起来不错。已将其添加到问题中。此代码是否来自您的第一帧?如果是,并且有更多帧,您是否返回到第一帧,即您是否重复跑步?在这种情况下,您可能会遇到问题,因为创建了许多计时器,而不仅仅是两个。如果使用多个帧,请确保不要返回到创建计时器的帧。例如,您可以跳回第二帧(
gotoAndPlay(2)
),是的,这似乎就是问题所在。我将它缩减到一帧,一些大问题得到了解决。如果我添加这样的全局停止,数字时钟不会启动。您应该将负责数字时钟的代码放置到
秒和分钟旋转
功能。