Ein Angebot, das keiner annimmt, nimmt man zurück

„Intro überspringen" soll erscheinen, ohne dass man den Bildschirm
antippen muss — das war der Wunsch, und er war richtig. Nur blieb der
Knopf dann liegen, solange die Marke dauert: bei einem Abspann sechs
Minuten lang ein Knopf über dem Bild, auch nachdem die übrige Bedienung
längst weggeblendet war.

Jetzt hat er eine eigene Frist. Acht Sekunden von selbst, lang genug zum
Bemerken und Treffen; danach gehört er zur Bedienung wie alles andere
und kommt mit einem Antippen zurück. Am Ende des Films bleibt er stehen
— dort ist er die einzige Frage, die noch offen ist.

Im Web dasselbe, plus die Stelle, an der es im Stehen auseinanderfiel:
`markenstand` rechnet nur, während das Bild läuft. Wer pausiert im Intro
die Maus bewegte, bekam die Bedienung zurück und den Knopf nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-13 16:16:15 +02:00
co-authored by Claude Opus 5
parent fbd865e93b
commit 0186087051
2 changed files with 63 additions and 1 deletions
+17 -1
View File
@@ -799,6 +799,8 @@ export function spieler(anfrage: Spieleranfrage): void {
* Klick mitten im Drücken zu verlieren.
*/
let markenstandJetzt = '';
let markenAb = 0;
let markeLaeuft = false;
function markenstand(jetzt: number): void {
const drin = marken.find(m => jetzt >= m.startSeconds && jetzt < m.endSeconds);
@@ -806,7 +808,18 @@ export function spieler(anfrage: Spieleranfrage): void {
const weiter = abspann && naechste?.files[0] != null;
const kennung = `${drin?.startSeconds ?? ''}|${weiter}`;
markenreihe.classList.toggle('hidden', !drin);
if (kennung !== markenstandJetzt) markenAb = performance.now();
// **Eine Marke dauert Minuten, ein Angebot nicht.** Die Knöpfe kommen
// von selbst, ohne dass man den Film antippen muss — aber ein Abspann
// läuft sechs Minuten, und so lange gehört kein Knopf über das Bild.
// Acht Sekunden von allein, danach nur noch zusammen mit der übrigen
// Bedienung: wer später doch überspringen will, bewegt die Maus.
const frisch = performance.now() - markenAb < 8000;
markeLaeuft = drin != null;
markenreihe.classList.toggle(
'hidden', !drin || (!frisch && schicht.classList.contains('pl-still')));
if (!drin || kennung === markenstandJetzt) return;
markenstandJetzt = kennung;
markenreihe.replaceChildren();
@@ -1294,6 +1307,9 @@ export function spieler(anfrage: Spieleranfrage): void {
let verstecker: number | undefined;
function zeigen(): void {
schicht.classList.remove('pl-still');
// Im Stehen rechnet `markenstand` nicht weiter: wer pausiert im Intro
// die Maus bewegt, bekäme die Bedienung zurück und den Knopf nicht.
if (markeLaeuft) markenreihe.classList.remove('hidden');
verbergenPlanen();
}
function verbergenPlanen(): void {