Javascript

Mit Javascript kannst du Szenen mit eigener Logik erweitern – z. B. UI anpassen, kleine Effekte einbauen, Zeiten messen oder externe Schnittstellen triggern.

Wichtig: JS ist inkonstant – beim Betreten jeder Szene wird es neu ausgeführt. Teile, die überall gelten sollen, gehören in die Masterszene [[ ]].
Starte dein Script immer leicht verzögert, damit die Szene fertig gerendert ist:



setTimeout(function () { // dein Code hier }, 300); 

Gute Praxis (sehr wichtig)


Häufige Mini-Rezepte

1) Button-Label/Style anpassen


setTimeout(function () { const btn = document.querySelector('button'); if (!btn) return; btn.textContent = 'Los geht’s'; btn.style.filter = 'drop-shadow(0 6px 12px rgba(0,0,0,.25))'; }, 200);

2) Szene nach X Sekunden automatisch fortsetzen


setTimeout(function () { // z.B. per Klick auf einen Weiter-Button simulieren const next = document.querySelector('[data-action="next"], .btn-continue'); if (next) next.click(); }, 10000); // 10 s

3) Einfache „Einmal“-Animation


setTimeout(function () { const el = document.querySelector('.dialog, .content'); if (!el) return; el.animate([{opacity:0, transform:'translateY(8px)'},{opacity:1, transform:'none'}], {duration:400, easing:'ease-out'}); }, 150);

4) Soft-Gate per Tageszeit (Beispiel)


setTimeout(function () { const h = new Date().getHours(); if (h < 8 || h > 20) { alert('Tipp: Diese Aufgabe klappt am besten bei Tageslicht.'); } }, 250);

5) Ereignis mitzählen (lokal)


setTimeout(function () { const k = 'tries_safe_open'; const n = 1 + +(localStorage.getItem(k) || 0); localStorage.setItem(k, n); if (n >= 3) { console.log('3 Fehlversuche – zeige Hilfe.'); // hier könntest du z.B. einen Hilfe-Button einblenden } }, 200);


Typische Stolperfallen


Checkliste

  1. Delay einbauen (setTimeout 150–300 ms).

  2. Idempotent & ggf. Once-Guard verwenden.

  3. Wo nötig: waitSel/Observer nutzen.

  4. Netz-/Fehlerfälle abfangen.

  5. Auf mehreren Geräten testen.

Damit bekommst du stabile, kleine Scripts, die zuverlässig mit der Szenenlogik zusammenspielen.

Gute Beispiele "ready to use" findest du auch unter Hacks.


Revision #5
Created 27 September 2025 15:31:02 by David Wright
Updated 30 September 2025 11:52:02 by David Wright