Scripting

Frå GeoGebra Manual
Gå til: navigering, søk
Accessories dictionary.png
Denne sida er ein del av den offisielle manualen for utskrift og pdf. Vanlege brukarar kan ikkje redigere slike sider. Ver vennleg og ta kontakt med oss dersom du finn feil på denne sida.Gå til versjonen som kan redigerast av brukarane.


Varsel Varsel: Denne sida treng gjennomlesing av nokon som har litt meir peiling på programmeringsbegrep.


Eit script er ein sekvens av kommandoar som vert utført i rekkefølgje. GeoGebra støttar to scriptspråk - GGBScript og JavaScript. Kjøring av script kan verte utløst av:

  • at du trykkjer på eit spesielt objekt
  • at du oppdaterer eit spesielt objekt (verdi eller eigneskapar vert endra)
  • du lastar fila (ved bruk av Javascript)
  • JavaScript lyttere (sjå Referanse:Javascript)

Du kan skrive eit script for eit objekt under fana Scripting i eigenskapar.

GGBScript

Du kan lage scripts som inneheld GeoGebra kommandoar slik som du gjer det i inntastingsfeltet. Etter at scriptet er sett igang vil kommandoane verte køyrt etter kvarandre.

Døme:
  • a er ein heiltallig glidar med verdiar frå 1 til 3
  • liste1 = {"rød", "grøn", "blå"}
  • under eigenskapar for a, sett "Ved oppdatering" script til VelFarge[a, Element[liste1, a]]
  • ved å endre verdien på glidaren vil du endre fargen på han

Forklaring: Kvar gong glidaren vert flytta skjer det ei oppdatering og scriptet vert køyrt. Verdien frå glidaren vert brukt til å hente ut ein farge frå lista og soleis endre fargen på glidaren.

Note Hint: Nokre kommandoar kan berre verte brukt ved scripting. Du finn dei på sida kommandoar for scripting.


JavaScript

Javascript er eit programmeringsspråk brukt på mange internettsider. I JavaScript treng ikkje kommandoane å verte utført i same rekkefølgje som dei vert skrive inn, men kan verte styrt av kontrollstrukturar (if, while, for). For generiske JavaScript finn du ei innføring her developer.mozilla.org. I GeoGebra kan du bruke spesieller JavaScript metodar som let deg endre konstruksjonar. Desse metodane høyrer til ggbApplet objekt. Det betyr at du kan kalle dei ved ggbApplet.method_name(parameter,..,parameter). For ei komplett liste over desse metodane sjå Referanse:Javascript.

Døme:
for(var i =0;i<10;i++) 
   ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
Dette scriptet lagar 10 punkt A0 til A9 med tilfeldige koordinatar.

GeoGebra har sin eigen JavaScriptmotor. Når du eksporterer som eit dynamisk arbeidsark kan du velje om du vil bruke denne motoren eller den som er innebygd i nettlesaren. Dersom du redigerer JavaScript på ei HTML side, vil ikkje ggbApplet variablen verte initialisert. Då må du først initialisere den med til dømes ggbApplet=document.applets[0];.

Globalt JavaScript

Under fana Globalt JavaScript kan du definere funksjonar som vil vere tilgjengeleg frå andre script. Du kan også definere funksjonen ggbOnInit() som vert kalla automatisk når konstuksjonen vert lasta. Funksjonen ggbOnInit kan verte brukt for å registrere lyttarar som vist under.

Døme:
function onAdd(namn){
    alert("Objekt "+namn+" vart lagt til.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}
Først definerer vi funksjonen onAdd som gjeve ein tekst viser ein beskjed som avheng av den teksten. Etter det, ved å bruke ggbOnInit funksjonen, fortel vi GeoGebra å kalle funksjonen kvar gong eit nytt objekt vert lagt til. Når vi relastar konstruksjonen vår vil ggbOnInit verte kalla og etter det, når det til dømes vert lagt til eit punkt A, får vi beskjeden "Objekt A vart lagt til."

Du kan også bruke lyttarar for handlingar som å gi nytt namn, slette og fjerne konstruksjonen. Ei komplett liste finn du på sida: Referanse:Javascript.

Merk: Å bruke ein ggbApplet metode i Globalt JavaScript utafor ggbOnInit vil ikkje fungere sidan dei vert kalla før konstruksjonen vert lasta.

USB Datalogging (Vert tilgjengeleg i GeoGebra 5)

For datalogging frå nokre Vernier USB Data Loggers, t.d. Go!Motion and Go!Temp kan ein definere ein loggerlyttar ved å bruke registerLoggerListener metoden. Slike lyttarar kan sjå ut som:

function logger(value) {
   var d = value * 1;
   ggbApplet.evalCommand("(KopierFrittObjekt[a],"+d+")");
   ggbApplet.evalCommand("VelVerdi[a,a+1]");
}

Dette scriptet antek at det er eit fritt tal a i konstruksjonen. Kvar gong talet d vert logga vil punktet (a,d) verte konstruert og verdien til a vert auka.

© 2024 International GeoGebra Institute