|
|
Eigene Funktionen mit JavaScript definieren
Geometria bietet die Möglichkeit, auf benutzerdefinierte
JavaScript-Funktionen zuzugreifen und diese bei der Definition von geometrischen
Objekten oder für eine Antwortanalyse einzusetzen. Dazu wurde die
Klasse Measure um die Unterklasse
MeasureJSFunction erweitert.
Damit eine JavaScript-Funktion über die Schnittstelle von Geometria
aufgerufen werden kann, sind folgende Punkte zu beachten:
- In dem HTML-Dokument muß eine JavaScript-Variable result
deklariert sein, über die der Austausch aller Funktionswerte stattfindet.
D. h., jede JavaScript-Funktion muß den Funktionswert in
die Variable result schreiben.
Geometria liest den Wert aus der Variable result
ein, nachdem eine JavaScript-Funktion aufgerufen wurde.
- Wenn der Wert einer JavaScript-Funktion neu berechnet werden soll,
weil beispielsweise ein JavaScript-Objekt (Checkbox, Button, etc.) verändert
wurde, so erreicht man dies durch den JavaScript-Befehl document.Geometria.repaint().
- Alle JavaScript-Funktionen werden durch Objekte der Klasse MeasureJSFunction
eingebunden. In GeoScript ist dafür die folgende Syntax
erforderlich:
<Objektbezeichner>; measure; JSFunction; <"Param_1">,
<"Param_2">, ..., <"Param_n">;
Vereinbarungsgemäß muß der erste Parameterwert den
Bezeichner der JavaScript-Funktion enthalten. Alle weiteren Parameter
werden unverändert an die JavaScript-Funktion weitergereicht. Damit
eine solche Funktion auch im Zugmodus aktualisiert (neu berechnet) wird,
müssen entsprechende Elternobjekte bekannt sein. Aus diesem Grunde
werden intern alle Parameter einer JavaScript-Funktion als Elternobjekte
des MeasureJSFunction-Objektes
angemeldet.
- Alle Parameter, die über die Java-JavaScript-Schnittstelle übergeben
werden, sind String-Objekte. Um auf die Eigenschaften eines geometrischen
Objektes zuzugreifen, steht der Befehl document.Geometria.getValue("name","property")
zur Verfügung. Dabei ist "name" der Bezeichner eines
definierten geometrischen Objektes und "property" der Bezeichner
einer Objekteigenschaft. Beispielsweise liefert document.Geometria.getValue("A","x")
den Wert der x-Koordinate vom Punkt A.
- Auf den Wert eines - in GeoScript definierten - Funktionals
greift man mit dem Befehl document.Geometria.getValue("name")
zu. Dabei muß "name" der Bezeichner eines definierten
Measure-Objektes sein,
dessen Wert zurückgeliefert wird.
- Damit man mit JavaScript öffentliche Methoden eines Java-Applets
ansprechen kann, muß das Applet-Tag den Befehl MAYSCRIPT
enthalten. Beispiel: <applet
code="Geometria" width="640" height="480" ... name="Geometria" MAYSCRIPT>
Beispiele:
|