BERKIOSDocs
Studio

Leçon 4 — Commandes et calculs

v0.7.76 : 100 commandes supplémentaires (texte, nombres, listes, dates, validation, couleur, confirmation, export…) sont décrites dans la leçon 8.

Commandes disponibles dans l'interpréteur du Studio

CommandeRôle
message "Texte"Afficher une notification (types, fenêtre modale et confirmation : message.info, message.modal, message.confirmer… voir la leçon 9)
set "Cible" "Valeur"Définir la valeur d'un composant
increment "Cible" 1Ajouter un incrément numérique
decrement "Cible" 1Soustraire un incrément numérique
show "Cible"Afficher un composant
hide "Cible"Masquer un composant
toggle "Cible"Basculer sa visibilité
calculate "Résultat" "A" * "B"Calculer avec deux champs
ajouter "Cible" "texte" (append)Ajouter du texte à la fin d'un champ
effacer "Cible" (clear)Vider un champ
retirer "Cible" (backspace)Supprimer le dernier caractère
evaluer "Expression" "Résultat" [silencieux] (evaluate)Calculer une expression (+ − × ÷ ^ % ( ), sin cos tan sqrt log ln abs, π, e ; angles en degrés)
toutes les 100 ms (every)En-tête de minuterie : les commandes qui suivent se répètent
si "Cible" >= 100 alors ouvrir "Interface"Condition sur une valeur
circuler "Cible" / arreterTexte en circulation / arrêt de la minuterie
avancer "Cible" 40 (advance)Déplacer le composant vers la droite de 40 px (10 px par défaut)
reculer "Cible" 40 (retreat)Déplacer vers la gauche
monter "Cible" 40 / descendre "Cible" 40 (up / down)Déplacer vers le haut / le bas
deplacer "Cible" dx dy (move)Déplacer de dx, dy pixels (valeurs négatives permises)
placer "Cible" x y (place)Placer le composant à la position x, y
quand touche espace (on key space)En-tête d'événement clavier : touches espace, droite, gauche, haut, bas, entree, echap ou une lettre (a)
aller "Interface" (go)Aller directement à une interface (sans empiler d'historique) : connexion, déconnexion, accueil
stocker "clé" "Cible" (store)Mémoriser la valeur d'un composant (conservée dans le navigateur)
lire "clé" "Cible" ["défaut"] (recall)Relire une valeur mémorisée dans un composant ou une variable $nom (vide si la clé n'existe pas)
quitter (return)Arrêter le script de l'événement en cours (ex. si "nom" = "" alors quitter)
audio jouer / pause / basculer / arreterLecture, pause, lecture⇄pause, arrêt du lecteur audio
audio volume 50 (ou +10, -10)Volume de 0 à 100 (absolu ou relatif)
audio avancer 10 / reculer 10 / position 30Se déplacer dans le morceau (secondes)
audio source "Cible"Choisir le morceau : un sélecteur de fichier (MP3, WAV, OGG…), un composant contenant une URL / data: ou une URL
audio boucle ouiRépéter le morceau
requete "https://…" "$reponse" (http, fetch)Requête HTTP GET (Internet, serveur avec CORS) ; la réponse est placée dans un composant ou une variable. Le script attend la réponse avant la commande suivante
extraire "$reponse" "chemin.json" "$cible" (json)Lire une valeur dans un JSON : current.temperature_2m, results.0.name (vide si absente)
associer "$code" "$cible" "0:Clair|1,2:Nuageux|51-57:Bruine|*:Autre" (map)Traduire une valeur par table (valeurs, listes 1,2, plages 51-57, * = défaut)

Lecture de l'état audio : {audio.temps}, {audio.duree}, {audio.progression} (0–100), {audio.etat}, {audio.volume}, {audio.titre} — par exemple set "barre" "{audio.progression}" dans un bloc toutes les 250 ms.

Dans une adresse web, {ville:url} insère la valeur d'un composant encodée (accents, espaces). Dans un champ de saisie, la touche Entrée peut déclencher quand touche entree.

Variables : $nom est une mémoire temporaire partagée par tous les scripts. Dans les textes (message, set, ajouter, clés), {composant} ou {$variable} est remplacé par sa valeur. À droite d'un si, un composant ou une variable écrit sans guillemets est comparé comme du texte (si "saisie" != $mdp alors …).

Position lisible dans les scripts : "brique.x", "brique.y", "brique.largeur", "brique.hauteur" (ex. si "brique.x" >= 700 alors message "Arrivée !"). Le composant ne sort jamais de la page, et sa position d'origine est rétablie en quittant l'aperçu.

Les opérateurs de calculate sont +, -, * et /.

Exemple : calcul de ligne

quand clic
  calculate "Total de ligne" "Prix unitaire" * "Quantité"
  message "Total de ligne mis à jour"

Exemple : panneau d'aide

quand clic
  toggle "instructions"

Exemple : une touche de calculatrice

quand clic
  ajouter "panneau_expression" "7"
  evaluer "panneau_expression" "panneau_resultat" silencieux

Voir examples/calculatrice-scientifique.berkios.json : chaque touche contient son code.

Limites

Il n'existe pas ici de fonctions définies par l'utilisateur ni d'exécution JavaScript générale (les variables $nom et, depuis la v0.7.76, repeter et sauf-si existent). N'inventez pas de commandes : vérifiez la syntaxe prise en charge par le moteur.