improved handling of explicit time()-setting: no re-rendering, just update
the time and call _update(). that avoids flashing of the letters.
This commit is contained in:
parent
3e8252fa13
commit
f9b6acf8b6
1 changed files with 8 additions and 12 deletions
20
uhr.js
20
uhr.js
|
@ -30,12 +30,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
language: 'de_CH',
|
language: 'de_CH',
|
||||||
theme: 'black',
|
theme: 'black',
|
||||||
force: false,
|
force: false,
|
||||||
controls: true
|
controls: true,
|
||||||
|
time: new Date()
|
||||||
},
|
},
|
||||||
start: function() {
|
start: function() {
|
||||||
if (!this._isOn()) {
|
if (!this._isOn()) {
|
||||||
var uhr = this;
|
var uhr = this;
|
||||||
this._timer = window.setInterval(function() {
|
this._timer = window.setInterval(function() {
|
||||||
|
uhr.options.time = new Date();
|
||||||
uhr._update();
|
uhr._update();
|
||||||
}, 1000);
|
}, 1000);
|
||||||
this._update();
|
this._update();
|
||||||
|
@ -80,21 +82,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
time: function(time) {
|
time: function(time) {
|
||||||
this.options.time = time;
|
|
||||||
if (time == null) {
|
if (time == null) {
|
||||||
this._currentMinute = -1;
|
this._currentMinute = -1;
|
||||||
this._update();
|
this.options.time = new Date();
|
||||||
} else {
|
} else {
|
||||||
if (this._timer != null) {
|
if (this._timer != null) {
|
||||||
window.clearInterval(this._timer);
|
window.clearInterval(this._timer);
|
||||||
}
|
}
|
||||||
var renderer = new UhrRenderer(this._language(), this.element.find('.letterarea'));
|
this.options.time = time;
|
||||||
var uhr = this;
|
|
||||||
renderer.render(this, function() {
|
|
||||||
uhr._show(time);
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
this._update();
|
||||||
},
|
},
|
||||||
// private variables
|
// private variables
|
||||||
_id: -1,
|
_id: -1,
|
||||||
|
@ -106,7 +103,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
},
|
},
|
||||||
_update: function() {
|
_update: function() {
|
||||||
if (this._isOn()) {
|
if (this._isOn()) {
|
||||||
var time = new Date();
|
var time = this.options.time;
|
||||||
if (time.getMinutes() == this._currentMinute) {
|
if (time.getMinutes() == this._currentMinute) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -355,7 +352,7 @@ UhrRenderer.prototype.render = function(uhr, beforeshow) {
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (console !== undefined && typeof console.log == 'function') {
|
if (console !== undefined && typeof console.log == 'function') {
|
||||||
console.log("Unknown layout version: " + this.layout.version);
|
console.error("Unknown layout version: " + this.layout.version);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -399,7 +396,6 @@ function Letter(value, style) {
|
||||||
} else {
|
} else {
|
||||||
this.style += ' ' + style;
|
this.style += ' ' + style;
|
||||||
}
|
}
|
||||||
console.log(this.getStyle());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Letter.prototype.toString = function letterToString() {
|
Letter.prototype.toString = function letterToString() {
|
||||||
|
|
Loading…
Reference in a new issue