我实现了一个如何在 JavaScript 中暂停时间的示例。例子在这里http://jsfiddle.net/suska/n4g5U/ http://jsfiddle.net/suska/n4g5U/
// Update of Date class to modify getTime method.
Date.prototype.origGetTime = Date.prototype.getTime;
Date._lastPausedAt;
Date._stopDuration = 0;
Date.prototype.getTime = function() {
if (Date._lastPausedAt) {
return Date._lastPausedAt.origGetTime() - Date._stopDuration;
}
return new Date().origGetTime() - Date._stopDuration;
};
Date.isPaused = function() {
return Date._lastPausedAt != null;
};
Date.pause = function() {
if (!Date._lastPausedAt) {
Date._lastPausedAt = new Date();
}
};
Date.unpause = function() {
if (Date._lastPausedAt) {
Date._stopDuration += new Date().origGetTime() - Date._lastPausedAt.origGetTime();
Date._lastPausedAt = null;
}
};
知道如何修改示例以实现减慢和加速功能吗?
在 dooxe 的答案上写了一个变体,以避免在时间扭曲之间改变时突然跳跃。
var milli = Date.prototype.getTime;
var lastTime = (new Date).getTime();
var curTime = 0;
Date.prototype.getTime = function(){
var actualTime = milli.call(this);
curTime += (actualTime - lastTime) * Date._speed;
lastTime = actualTime;
return curTime;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)