【发布时间】:2017-06-16 17:05:04
【问题描述】:
我写了一个计时器来向用户显示他/她在当前场景中的程度:
timer_txt.x = 352;
timer_txt.y = 705;
var nCount: Number = 0;
var myTimer: Timer = new Timer(50, nCount);
timer_txt.text = "Time: " + nCount.toString();
myTimer.start();
function countUp(e: TimerEvent): void {
nCount++;
timer_txt.text = "Time: " + nCount.toString();
if (nCount > 60) {
var formattedTime =
((Math.floor(nCount / 60)) + ":" + (nCount % 60 >= 10 ? "" : "0") + (nCount % 60));
timer_txt.text = "Time: " + formattedTime.toString();
}
}
我有一个reset 按钮来重置场景中的其他对象,但没有timer。
我的问题是:
每当我点击
reset按钮时,timer会越来越慢,我不知道为什么,而我没有对计时器进行任何更改。 我在舞台上有很多flags和很多child。当用户点击/触摸reset按钮时,所有flags将等于0,所有child将成为removed和add再次回到舞台。当用户要去其他场景时(定时器应该停止工作,而定时器的当前值需要保存在一个变量中)并且当用户再次回到这个场景时,这个定时器应该像:
previous value + counting the time。-
每次用手机打开,速度都和电脑不一样。是否有任何解决方案将其编码为与本机设备的时序兼容? 这是我写的一个函数:
function timerAtoB(firstColor: int): void { lineColor = firstColor; //GRID; //Path A to B var PathAB: Grid; PathAB = new Grid(4, 35, 20, 22, canvas, lineColor); this.addChild(PathAB); }
这个功能是将A维度连接到B维度。 A 和 B 之间的连接将使用一个名为 Grid 的类来构建 - 这个类是为了找到 A 和 B 之间的最短路径并在它们之间建立连接(我不想通过它比这更多因为它更复杂)。
我会延迟调用这个函数:
delayCallFunctions(1000, timerAtoB, wireColor);
当我在我的手机上运行它时,这个延迟会正常工作,但不是在正确的时间。例如,我写了1000ms 表示在大约1 sec 之后执行该功能,但在我的手机中执行该功能需要超过1 sec。
提前感谢您的时间和帮助。
【问题讨论】:
-
第二期,我使用了一个变量类。每次用户离开场景时,当前值都会发送给类,当用户回到同一个场景时,类会将变量传递给场景。但显然它不能正常工作!
-
你的计时器上没有监听器
标签: actionscript-3 flash timer