Beim Staffelfinale klingt der Abspann anders
Und genau daran fiel er durch. Der Tonabgleich lebt davon, dass der Abspann in jeder Folge derselbe ist; beim Finale ist er es oft nicht — anderer Schluss, andere Musik, kein Treffer. In jeder Staffel fehlte deshalb genau eine Marke, immer die letzte, und wer dort weitersah, sah keinen Knopf. Das war der ganze Fehler. Der Spieler war nie schuld, und meine Schranken-Vermutung von eben war falsch. Was der Ton nicht findet, sucht jetzt das Bild — derselbe Weg wie bei einem Film: dunkel werden und bis zum Ende durchhalten. Das Verfahren lag fertig in `FilmAsync` und war nur dort eingebaut; es steht jetzt für sich und wird von beiden benutzt. Nur für die Lücken: bei einer Staffel ohne fehlende Marke läuft der Abtaster gar nicht. **Drei Punkte heissen „mehr davon", nicht „tu etwas".** Bei einer Folge taten sie etwas — wegräumen aus „Fortsetzen", ohne Rückfrage. Jeder, der sie sah, hat ein Menü erwartet, draufgetippt, und dann baute die Seite sich neu auf und die Punkte waren weg. Jetzt ein Kreuz, und eine Zeile, die sagt, was geschehen ist. Und die Markenanzeige nennt die Zeiten, nicht nur die Namen: dass eine Marke da ist, sagt noch nicht, dass sie an der richtigen Stelle steht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
74643b8242
commit
1340176bf0
@@ -455,9 +455,20 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
|
||||
stand?.favourite ? 'Aus Favoriten nehmen' : 'Zu Favoriten',
|
||||
async () => { await favorit(eintrag.id, !stand?.favourite); await laden(); }));
|
||||
|
||||
// **Drei Punkte heissen „mehr davon", nicht „tu etwas".**
|
||||
//
|
||||
// Hier taten sie etwas: wegräumen aus „Fortsetzen", ohne Rückfrage.
|
||||
// Jeder, der sie sah, hat ein Menü erwartet, draufgetippt — und dann
|
||||
// baute die Seite sich neu auf und die Punkte waren weg. Von aussen
|
||||
// sah das aus wie ein Fehler, und ohne Rückmeldung war nicht einmal
|
||||
// zu erkennen, was passiert war.
|
||||
if ((stand?.positionSeconds ?? 0) > 0 && !stand?.dismissed) {
|
||||
reihe.appendChild(rundKnopf('mehr', false, 'Aus „Fortsetzen" entfernen',
|
||||
async () => { await weglegen(eintrag.id); await laden(); }));
|
||||
reihe.appendChild(rundKnopf('schliessen', false, 'Aus „Fortsetzen" entfernen',
|
||||
async () => {
|
||||
await weglegen(eintrag.id);
|
||||
hinweisZeigen('Aus „Fortsetzen" entfernt.');
|
||||
await laden();
|
||||
}));
|
||||
}
|
||||
|
||||
// **Diesen einen Titel neu holen, nicht den ganzen Bestand.**
|
||||
@@ -1094,9 +1105,14 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
|
||||
function markenwort(marken: Folge['markers']): string {
|
||||
if (!istAdmin()) return '';
|
||||
if (!marken || marken.length === 0) return 'keine Marken';
|
||||
// **Mit Zeiten, nicht bloss mit Namen.** Dass eine Marke da ist, sagt
|
||||
// noch nicht, dass sie an der richtigen Stelle steht — und genau das
|
||||
// ist der Unterschied zwischen „die Erkennung hat nichts gefunden"
|
||||
// und „der Knopf kommt zur falschen Minute".
|
||||
return marken
|
||||
.map(m => m.kind === 'intro' ? 'Vorspann' : 'Abspann')
|
||||
.join(' + ');
|
||||
.map(m => `${m.kind === 'intro' ? 'Vorspann' : 'Abspann'} `
|
||||
+ `${dauer(m.startSeconds)}–${dauer(m.endSeconds)}`)
|
||||
.join(' · ');
|
||||
}
|
||||
|
||||
function folgenblock(folge: Folge): HTMLElement {
|
||||
|
||||
Reference in New Issue
Block a user