Umbau der Aktivität: Skripting bei Punkten

Toolbar Image Arbeitsauftrag für den Umbau: Du bist auf geogebra.org mit deinem Benutzer-Konto angemeldet. Öffne und kopiere dir nun die folgende Aktivität: https://www.geogebra.org/m/p2kwsj9c



Die Aktivität besteht aus fertigen Applets, die aber nicht miteinander verknüpft sind. Idee einer Verknüpfung: Benenne jedes Applet eindeutig aber unterschiedlich.



Toolbar Image Umbau der drei Applets - Grundlagen der Verknüpfung: Jedes Applet muss eine eindeutige Bezeichnung für die globale Variable ggbApplet bekommen, z.B. applet1 / applet2 / applet3 oder kürzer: app1 / app2 / app3. Dazu muss man im globalen JavaScript beim Start des Applets die globale Variable umbenennen: Applet zum Bearbeiten öffnen: Rufe im GeoGebra-Applet über die ⚙️Einstellungen eines beliebigen Objektes (rechte Maustaste) den Tab für das Skripting auf:
CODE zum Kopieren - Erweitern der "Startfunktion" ggbOnInit(): function ggbOnInit() { if (window) { window.app1 = ggbApplet; } }
Bemerkung zum CODE: "Wenn das Applet-Fenster geladen ist ( if (window) { ... } ), dann benenne in diesem Fenster ( window ) die globale Variable mit app1." Wiederhole die Vorgehensweise bei allen drei Applets. Nun können die Applets gezielt "angesprochen" werden, wie das Bild der Aktivität oben zeigt: app1 - Oberes Applet app2 - Mittleres Applet app3 - Unteres Applet
Toolbar Image Umbau der drei Applets - Applets "kommunizieren" lassen: Das Applet 1 (app1) soll bei Mausklick auf den Prüfen-Button den aktuellen Score an das letzte Applet (app3) senden. Die Zahl für den Highscore ist in diesem Applet (app3) bereits vordefiniert als h_1. Applet zum Bearbeiten öffnen: Rufe im GeoGebra-Applet über die ⚙️Einstellungen eines beliebigen Objektes (rechte Maustaste) den Tab für das Skripting auf:
CODE zum Kopieren - Erweitern der "Startfunktion" ggbOnInit(): var h_1 = app1.getValue("correctCount"); app3.setValue("h_1",h_1);
Bemerkung zum CODE: In der JavaScript-Umgebung wird eine neue Variable h_1 mit dem Wert der GeoGebra-Variablen correctCount belegt. Anschließend wird im unteren Applet (app3) der Wert der Variablen h_1 in diesem Applet mit demselben Wert belegt. Ein denkbarer kürzerer Code könnte sein: app3.setValue("h_1",app1.getValue("correctCount")); Wiederhole die Vorgehensweise beim mittleren Applet (app2) und der in Applet (app3) bereits vordefinierten Variablen h_2. Anmerkung: Sollte man die Applets bereits beim Erstellen im Skripting verknüpfen oder sollten die Applets nicht gleichzeitig laden, empfiehlt sich eine Erweiterung des Codes, um unnötige Fehlermeldungen zu vermeiden: if (window.app1 && window.app2 && window.app3) { app3.setValue("h_1",app1.getValue("correctCount")); } Der Code wird also nur ausgeführt, wenn die drei Applet-Fenster geladen sind.