Mehrere Bedingungen kombinieren
UND, ODER, „nicht das“, und die Gruppen in Klammern.
Ein Etikett pro Bedingung
Du wählst eine Bedingung aus der Liste, sie wird zu einem Etikett. Der kleine Button davor sagt, in welche Richtung sie zählt:
- wenn — nur in diesem Fall;
- wenn nicht — überall außer in diesem Fall.
Auf einem bereits gesetzten Etikett kehrt derselbe Button die Richtung um; das ✕ entfernt es.
Die Gruppen
Eine Gruppe ist eine Klammer. Darin sagst du, ob alle Bedingungen nötig sind, oder mindestens eine. Zwischen zwei Gruppen stellt sich dieselbe Frage: UND oder ODER.
Drei Schreibweisen für dieselben Operatoren
| Was man sagen will | Zeichen | Ausgeschrieben |
|---|---|---|
| und | & | AND |
| oder | | | OR |
| nicht | ! | NOT |
Die beiden Schreibweisen mischen sich, und Groß- und Kleinschreibung spielt keine Rolle: if="crt AND !tate" entspricht if="crt & !tate".
⚠️ && und || funktionieren nicht. Zwei Zeichen hintereinander sind ein Syntaxfehler, und ein fehlerhafter Ausdruck ist falsch: die Komponente verschwindet, ohne dass irgendetwas auf dem Bildschirm darauf hinweist.
Beispiel: „auf einem Röhrenbildschirm, und in Arcade oder in den Favoriten“ schreibt man
crt & (arcade | favorite)
⚠️ Die Reihenfolge der Gruppen zählt
Die Maschine liest von links nach rechts, ohne Vorrang. a | b & c ist dort (a | b) & c, und nicht a | (b & c). Deshalb setzt das Studio systematisch die Klammern: was du liest, ist genau das, was die Maschine verstehen wird.
Innerhalb einer Gruppe dagegen spielt die Reihenfolge keine Rolle: „nicht Full HD und Arcade“ sagt dasselbe wie „Arcade und nicht Full HD“.
Eine Bedingung wird an zwei Stellen geschrieben
Dieselbe Bedingung, an der Komponente selbst oder an nur einer ihrer Eigenschaften, sagt nicht dasselbe:
<image name="filtre" if="crt">…</image> <!-- ① die Komponente existiert NUR auf einem CRT -->
<text name="titre"> <!-- ② die Komponente existiert immer… -->
<fontSize if="crt">0.09</fontSize> <!-- …aber ihre Größe ändert sich auf einem CRT -->
<fontSize if="!crt">0.05</fontSize>
</text>
① an der Komponente: sie erscheint, oder sie existiert gar nicht. ② an einer Eigenschaft: die Komponente ist immer da, nur einer ihrer Werte ändert sich.
Im Studio ist es in beiden Fällen derselbe Button und dasselbe Fenster — was du hier baust, gilt dort identisch.