LIVE-Skripting - Applets verknüpfen

[icon]/images/ggb/toolbar/mode_rotateview.png[/icon] [b][u]Rückblick auf die Grundlagen:[/u][/b][br]Der Name der globalen Variable in einem GeoGebra-Applet ist standardmäßig [color=#6557d2][b]ggbApplet[/b][/color]. Falls man mehrere GeoGebra-Anwendungen auf einer Seite platziert, enthält [color=#6557d2][b]ggbApplet[/b][/color] immer die API der zuletzt aktiven Anwendung ([u]A[/u]pplication [u]P[/u]rogramming [u]I[/u]nterface - auch Programmierstelle genannt, also das GeoGebra-Applet, in dem man sich gerade befindet).[br][br]Mit diesem Wissen findet man die Grundidee zur Kommunikation zwischen Applets - man muss der globalen Variablen [color=#6557d2][b]ggbApplet[/b][/color] einen eindeutigen Namen für jedes Applet geben.
[icon]/images/ggb/toolbar/mode_showhidelabel.png[/icon] [u][b]Arbeitsauftrag:[/b][/u][br]Benenne die globale Variable in beiden Applets um, z.B. app1 und app2.[br]Übertrage den Wert von a in die JavaScript-Umgebung.[br]Setze den Wert von a im anderen Applet auf den Wert von a im aktuellen Applet.
[quote][u]CODE_GLOBAL zum Kopieren:[/u][br][b][color=#6557d2]app[/color][color=#ff0000][u]1[/u][/color][color=#6557d2]=ggbApplet;[br][/color][/b][/quote][size=85][size=50][u][b]ACHTUNG:[/b][/u][br][/size]Der CODE funktioniert - aber um Fehlermeldungen während des Programmierens oder bei Seiten-Ladefehler zu vermeiden, muss man den CODE eigentlich erweitern. Der korrekte CODE lautet dann:[br][color=#6557d2][b]if (window) {[br]window.app1=ggbApplet;[br]}[br][/b][/color][u][i]"Übersetzung":[/i][/u][br]Wenn das Browser-[i][u]Fenster[/u][/i] (oder Tab) geöffnet ist, dann benenne in diesem [u]Fenster[/u] die globale Variable [u]ggbApplet[/u] um in [u]app1[/u].[/size]
[quote][u]CODE_UPDATE zum Kopieren:[/u][br][b][color=#6557d2]var a1 = app[/color][color=#ff0000][u]1[/u][/color][color=#6557d2].getValue("a");[br]app[b][color=#ff0000][u]2[/u][/color][color=#6557d2].[/color][/b]setValue("a",a1);[br][/color][/b][/quote][size=85][size=50][u][b]ACHTUNG:[/b][/u][br][/size]Der CODE funktioniert - aber um Fehlermeldungen während des Programmierens oder bei Seiten-Ladefehler zu vermeiden, muss man den CODE eigentlich erweitern. Der korrekte CODE lautet dann:[br][color=#6557d2][b]if (window.app1&&window.app2) {[br][b][color=#6557d2]var a1 = app[/color][color=#ff0000][u]1[/u][/color][color=#6557d2].getValue("a");[br]app[b][color=#ff0000][u]2[/u][/color][color=#6557d2].[/color][/b]setValue("a",a1);[/color][/b][br]}[br][/b][/color][u][i]"Übersetzung":[/i][/u][br]Wenn im Browser-[i][u]Fenster[/u][/i] (oder Tab) beide GeoGebra-Applets geladen sind, dann übertrage den Wert von a.[/size]
Hier gehts zum Lösungsvorschlag:[br][url=https://www.geogebra.org/m/ytuzf8v8]https://www.geogebra.org/m/ytuzf8v8[/url]

Information: LIVE-Skripting - Applets verknüpfen