7_Skripting des Beispiel-Applets
Anhand des Beispiel-Applets (siehe Bild unten) wollen wir das Skripting nachvollziehen und wesentliche Befehle "nachbauen".
Manche Bausteine sind notwendig für die Funktion des Applets, manche Bausteine haben u.a. "kosmetische" Aufgaben.
JavaScript lesen und verstehen:
Dieser Quellcode ist im globalen JavaScript gespeichert.
Durch die Definition von sogenannten Funktionen kann man an dieser Stelle Anweisungen erstellen, die in einem Skript von verschiedensten Objekten aufgerufen werden können. Das erspart erheblich Arbeit, vor allem wenn man immer mal wieder etwas ändern muss.
ACHTUNG:
Bitte nicht vom Quell-Code erschlagen lassen, sondern bewusst auf die durch Unterstreichung hervorgehobenen Befehle achten!
Lies dir den Auszug aus dem Globalen JavaScript des Applets oben durch:
function pruefen() {
ggbApplet.evalCommand("attemptCount=attemptCount+1");
var a = ggbApplet.getValue("a");
if (a == true) {
richtig();
} else {
falsch();
}
}
function richtig() {
var feedback = ggbApplet.getValueString("feedback");
ggbApplet.setColor("Button1", 150, 150, 150);
ggbApplet.setFixed("Button1", true, false);
ggbApplet.setColor("Button2", 0, 100, 0);
ggbApplet.setFixed("Button2", true, true);
alert(feedback);
ggbApplet.evalCommand("correctCount=correctCount+1");
}
function falsch() {
ggbApplet.evalCommand("serie=serie+1");
var serie = ggbApplet.getValue("serie");
if (serie == 3) {
ggbApplet.setColor("Button1", 150, 150, 150);
ggbApplet.setFixed("Button1", true, false);
ggbApplet.setColor("Button2", 0, 100, 0);
ggbApplet.setFixed("Button2", true, true);
ggbApplet.setValue("control", true);
alert("Schau dir die Lösung an.");
} else {
alert("Leider nein - versuche es doch einfach nochmal!");
}
}
function neu() {
ggbApplet.evalCommand("c=RandomBetween(-6,6)*0.5");
ggbApplet.evalCommand("m=RandomBetween(-8,8)*0.5");
ggbApplet.evalCommand("feedback=RandomElement(l1)");
ggbApplet.setColor("Button2", 150, 150, 150);
ggbApplet.setFixed("Button2", true, false);
ggbApplet.setColor("Button1", 0, 100, 0);
ggbApplet.setFixed("Button1", true, true);
ggbApplet.evalCommand("serie=0");
ggbApplet.setValue("control", false);
}
Diese Schaltfläche ruft bei Mausklick die Funktion pruefen() auf. | |
Diese Schaltfläche ruft bei Mausklick die Funktion neu() auf. |
Bemerkung:
Um die ersten Schritte in JavaScript nicht zu sehr zu überladen, wird im Folgenden bewusst auf die Benutzung von Funktionen verzichtet.
Der Quellcode oben soll lediglich die Übersichtlichkeit von JavaScript sowie das Arbeiten an einer einzigen Stelle im Applet (nämlich im globalen JavaScript) aufzeigen, was durchaus ein Vorteil im Vergleich zum GeoGebra-Skript sein kann (aber nicht muss!!!).
Wir beschäftigen uns also vorwiegend mit get-, set- und evalCommand-Befehlen sowie der korrekten Syntax.