我目前有一个部分解决方案在运行,但就我的一生而言,我无法找出正确的迭代。我也可能完全错了。首先在PHP中,我获取当前时间并将其转换为微秒。经过计算,差值精确到半小时:
$remaining = 30 - (date('i', time()) % 30);
它被放入一个JSON文件中,并被发送到我正在用Javascript编写的系统中,带有EaselJS。(编辑:我忘了提一下,就在发送之前,它被转换成了MicroTime)
一旦文件被加载,bool被翻转为"true",并开始倒计时:
function UpdateGame(event)
{
if (ready == true)
{
stage.update();
if (TickTimerReady == true)
{
ticktimer = ticktimer - 1000000;
console.log(ticktimer);
}
}
}
现在是棘手的部分:UpdateGame是一个基于刻度的事件,以40 FPS的速度运行。我如何计算从ticktimer中减去的正确值,使其在服务器执行操作的同时达到半小时?我知道它可能有点偏离…但1000000显然不是!
您可以执行以下操作,在服务器响应时调用timer()
,并在30分钟后执行所需操作。
var seconds = 0;
timer = function(){ setInterval(count,1000); }
count = function(){
seconds++;
if (seconds === (30*60)) window.alert("it's been 30 minutes do stuff");
}