Fiche
technique 38 Modifier dynamiquement la couleur d'une case à co-
cher (ou d'un bouton, ou ...)
1 Avec des couleurs dynamiques 2 En Script GeoGebra
3 En JavaScript
QR Code
http://url.univ-irem.fr/ft2
De la même façon qu'il est possible de modifier à la volée la légende d'une case à cocher, on peut également modifier dynamiquement sa couleur en ayant recours aux couleurs dynamiques ou aux langages de scripts intégrés àGeoGebra.
Dans les exemples qui suivent, nous considérons une case à cocher nomméecaseet nous souhaitons que la légende s'affiche en bleu lorsque la case est cochée ou en noir sinon.
La case est cochée La case n'est pas cochée
1 Avec des couleurs dynamiques
Le moyen le plus simple pour modifier la couleur d'une case à cocher en fonction de son état consiste à lui attribuer des couleurs dynamiques (voir la fiche techniqueGeoGebra et la gestion des couleurs, page 581).
• Ouvrir la boîte des propriétés de la case à co- cher.
• Choisir l'ongletAvancé.
• Dans la rubriqueCouleurs dynamiques, ins- crirecasedans le champBleu.
Méthode
Lorsque la case est cochée, le booléen casevaut trueetGeoGebralui attribue la valeur 1. Sa couleur dynamique est alors caractérisée par le triplet (0,0,1), ce qui correspond à la couleur bleue.
Dans le cas contraire, le booléen est égal àfalseet la couleur dynamique associée à la case à cocher est donnée par le triplet (0,0,0), ce qui correspond à la couleur noire.
Ouvrir le fichier exemple
Modifier dynamiquement la couleur d'une case à cocher (ou d'un bouton, ou ...) 727
2 En Script GeoGebra
En combinant les commandesSoitCouleuretSi, il est possible de définir un scriptGeoGebraqui modifie la couleur de la case à cocher à chaque fois que celle-ci change d'état.
• Ouvrir la boîte des propriétés de la case à cocher.
• Choisir l'ongletScript.
• Dans l'ongletPar actualisation, inscrire la com- mande :
SoitCouleur[case,Si[case, "blue","black"]]
• Valider en cliquant sur le bouton OKOK.
Méthode
Nous utilisons la commandeSoitCouleur[<objet>,<texte>]qui permet d'affecter une couleur nommée à un objet donné. La liste des couleurs nommées utilisables dans cette commande est fournie en annexe page 753.
La commandeSi[case, "blue","black"]renvoie"blue"lorsque le case est cochée ou"black"sinon.
La commandeSoitCouleurpossède une syntaxe alternative de la formeSoitCouleur[<objet>,<rouge>,<
vert>,<bleu>]où<rouge>,<vert>et<bleu>représentent respectivement les quantités de rouge, de vert et de bleu de la couleur désirée. Ces trois valeurs doivent appartenir à l'intervalle [0; 1].
Sachant que la couleur bleue s'exprime par le triplet (0,0,1) et que la couleur noire s'obtient en attribuant la valeur 0 à chacune de trois composantes, on peut utiliser cette syntaxe alternative comme dans l'exemple ci-dessous.
• Ouvrir la boîte des propriétés de la case à cocher.
• Choisir l'ongletScript.
• Dans l'ongletPar actualisation, inscrire la commande :
SoitCouleur[case,0,0,Si[case,1,0]]
• Valider en cliquant sur le bouton OKOK.
Méthode
Ouvrir le fichier exemple
3 En JavaScript
S'il s'avère nécessaire de recourir au JavaScript pour modifier la couleur d'un objet, on peut utiliser la méthode
setColor(<objet>,<rouge>,<vert>,<bleu>). Mais attention, ici, contrairement au langage de scriptGeoGebra, les trois composantes<rouge>,<vert>et<bleu>doivent être entières et appartenir à l'intervalle [0; 255].
728 commissioninter
T REM CE
• Ouvrir la boîte des propriétés de la case à cocher.
• Choisir l'ongletScript;
• Dans l'onglet Par actualisation, sélectionner JavaScript dans la liste déroulante.
• Puis, taper la commande :
if (ggbApplet.getValue("case")) {
ggbApplet.setColor("case",0,0,255);
} else
{
ggbApplet.setColor("case",0,0,0);
}
• Valider en cliquant sur le bouton OKOK.
Méthode
L'instructiongetValue(<objet>)retourne la valeur de l'objet passé en argument. Dans le cas présent, elle permet de vérifier si la case est cochée ou non.
Ouvrir le fichier exemple
Modifier dynamiquement la couleur d'une case à cocher (ou d'un bouton, ou ...) 729