wanneer — coöperatieve gebeurtenisscripts

Syntaxis en waarden

Gebeurtenisscripts staan op programmaniveau. Alleen deze directe aanroepen zijn
toegestaan als gebeurtenisbeschrijving:

Kop Betekenis
wanneer gestart(): Eén uitvoering na gewone initialisatie.
wanneer na(1): Eén uitvoering na een vaste vertraging.
wanneer berichtOntvangen("start"): Uitvoering bij een exact overeenkomend bericht.
wanneer toetsGedrukt("space"): Uitvoering bij de overgang van los naar ingedrukt.
wanneer aanwijzerGedrukt("primary"): Eén uitvoering bij een geaccepteerde primaire druk binnen het beeld.
wanneer aanwijzerLosgelaten("primary"): Eén uitvoering bij echt loslaten van dezelfde geclaimde aanwijzer.
wanneer aanwijzerGeklikt("primary"): Eén uitvoering als indrukken en loslaten binnen het beeld plaatsvonden.

na vereist een direct eindig getalliteral van 0 tot en met 10 seconden;
variabelen en berekende waarden zijn hier niet toegestaan. Een positieve
vertraging kleiner dan 1 ms wordt minimaal 1 ms. Berichten en toetsen vereisen
een niet-lege tekstliteral. Bij aanwijzers moet de literal exact "primary"
zijn. Dit zijn gegevenswaarden; schrijf dus niet "primair" of "spatie".

# taal: nl
laat klikken = 0

wanneer gestart():
    wisScherm("wit")

wanneer aanwijzerGeklikt("primary"):
    zet klikken = klikken + 1
    cirkel(aanwijzerX(), aanwijzerY(), 12, "blauw")
    zeg "Aantal klikken:", klikken

Gewone opdrachten initialiseren eerst het programma. Daarna worden scripts
coöperatief ingepland. gestart begint in bronvolgorde; alle na-scripts
gebruiken hetzelfde tijdanker na initialisatie. Gelijke deadlines behouden de
bronvolgorde; na(0) komt achter het gestarte werk. Een timer vuurt eenmaal en
houdt daarna zelf geen inactieve sessie open.

wacht parkeert alleen het actieve script. zendBericht zet alle exact passende
scripts in bronvolgorde klaar en geeft andere scripts een beurt. Globale
variabelen worden gedeeld; lokale variabelen horen bij de afzonderlijke aanroep.
Blijvende toets- en aanwijzerscripts houden het programma actief totdat het
wordt gestopt, afgesloten of door een fout beëindigd. De host moet iedere
vereiste invoercapaciteit ondersteunen.

Toetsherhaling van het besturingssysteem veroorzaakt geen nieuwe drukgebeurtenis.
Een primaire druk binnen het logische beeld claimt één aanwijzer. Echt loslaten
van die aanwijzer levert eerst een loslaatgebeurtenis op, ook buiten het beeld;
alleen binnen het beeld volgt ook een klik. Annuleren, verloren capture,
extra of dubbele drukken en niet-primaire aanwijzers leveren geen loslaten of
klik op. Een al geaccepteerde druk wordt niet teruggenomen.

aanwijzerX() en aanwijzerY() lezen een onveranderlijke opname van de
gebeurtenis. Bij druk/klik is x 0..639 en y 0..359; bij loslaten zijn dit
naar beneden afgeronde 32-bits coördinaten met teken, ook buiten het beeld,
zonder vastzetten aan de rand. De opname blijft beschikbaar tijdens wachten
en functieaanroepen van hetzelfde script; afzonderlijk ingeplande scripts
erveren haar niet. Eén soort handler registreren is voldoende.

Er zijn nog geen periodieke timers, aanwijzerbeweging, slepen, GPIO-flanken of
spritegebeurtenissen. Gebeurtenisbeschrijvingen zijn geen gewone functiewaarden
of aanroepen buiten een wanneer-kop.

Gerelateerde lemma’s

Syntaxis en waarden · Ingebouwde functies · Programmeergidsen