<sect1 id="tool-scriptbuilder">
<title
>Verktyget Skriptbyggaren</title>
<indexterm
><primary
>Verktyg</primary>
<secondary
>Skriptbyggare</secondary>
</indexterm>

<para
>KDE-program kan styras externt från ett annat program, från en terminal, eller från ett skalskript med hjälp av protokollet för kommunikation mellan processer (&DBus;). &kstars; utnyttjar den här funktionen för att tillåta att skapa skript med relativt komplicerade beteenden, som kan spelas upp när som helst. Detta kan till exempel användas för att skapa en demonstration i klassrummet för att illustrera astronomiska begrepp. </para>
<para
>Problemet med &DBus;-skript är att skriva dem är lite grand som programmering, och kan verka vara en skrämmande uppgift för de som saknar programmeringsvana. Skriptbyggaren tillhandahåller ett grafiskt gränssnitt där man kan peka och klicka för att skapa &kstars; &DBus;-skript, vilket gör det mycket enkelt att skapa komplexa skript. </para>

<sect2 id="sb-intro">
<title
>Introduktion till skriptbyggaren</title>

<para
>Innan förklaringen av hur skriptbyggaren används, följer en mycket kort inledning till alla grafiska komponenter: För mer information, använd funktionen "Vad är det här?". </para>

<screenshot>
<screeninfo
>Verktyget Skriptbyggare </screeninfo>
<mediaobject>
  <imageobject>
    <imagedata fileref="scriptbuilder.png" format="PNG"/>
  </imageobject>
  <textobject>
    <phrase
>Verktyget Skriptbyggare</phrase>
  </textobject>
</mediaobject>
</screenshot>

<para
>Skriptbyggaren visas i skärmbilden ovanför. Rutan till vänster är <firstterm
>Aktuellt skript</firstterm
>. Den visar listan med kommandon som utgör det aktuella arbetsskriptet. Rutan till höger är <firstterm
>Funktionsbläddraren</firstterm
>. Den visar listan med tillgängliga skriptfunktioner. Under funktionsbläddraren finns en liten ruta som visar kortfattad dokumentation av skriptfunktionen som är markerad i funktionsbläddraren. Panelen under rutan Aktuellt skript är rutan <firstterm
>Funktionsargument</firstterm
>. När en funktion är markerad i rutan Aktuellt skript, visar rutan objekt för att ange värden för alla argument som den markerade funktionen kräver. </para
><para
>Längs fönstrets överkant finns en rad knappar som gäller skriptet som helhet. Från vänster till höger är de: <guibutton
>Nytt skript</guibutton
>, <guibutton
>Öppna skript</guibutton
>, <guibutton
>Spara skript</guibutton
>, <guibutton
>Spara skript som...</guibutton
> och <guibutton
>Testa skript</guibutton
>. Knapparnas funktion bör vara uppenbar, möjligen med undantag för den sista knappen. Genom att trycka på <guibutton
>Testa skript</guibutton
>, görs ett försök att köra aktuellt skript i &kstars; huvudfönster. Du bör flytta skriptbyggarens fönster ur vägen innan du trycker på knappen, så att du kan se resultatet. </para
><para
>I fönstrets mitt finns en kolumn med knappar som hanterar individuella funktioner i skriptet. Uppifrån och ner är de: <guibutton
>Lägg till funktion</guibutton
>, <guibutton
>Ta bort funktion</guibutton
>, <guibutton
>Kopiera funktion</guibutton
>, <guibutton
>Flytta upp</guibutton
> och <guibutton
>Flytta ner</guibutton
>. <guibutton
>Lägg till funktion</guibutton
> lägger till funktionen som för närvarande är markerad i Funktionsbläddraren i rutan Aktuellt skript (du kan också lägga till en funktion genom att dubbelklicka på den). Övriga knappar hanterar funktionen som är markerad i rutan Aktuellt skript, genom att antingen ta bort den, duplicera den eller ändra dess position i det aktuella skriptet. </para>
</sect2>

<sect2 id="sb-using">
<title
>Använda skriptbyggaren</title>
<para
>För att illustrera hur skriptbyggaren används, presenterar vi ett kort handledningsexempel, där vi skapar ett skript som följer månen medan klockan går med accelererad hastighet. </para
><para
>Om vi ska följa månen, måste vi först peka skärmen mot den. Funktionen <firstterm
>lookToward</firstterm
> används för att göra detta. Markera funktionen i funktionsbläddraren, och observera dokumentationen som visas i rutan under funktionsbläddraren. Tryck på knappen <guibutton
>Lägg till funktion</guibutton
> för att lägga till funktionen i rutan Aktuellt skript. Rutan Funktionsargument innehåller nu en kombinationsruta som heter <quote
>Riktning</quote
>. Detta är riktningen som skärmen ska peka. Kombinationsrutan innehåller bara kompassens kardinalpunkter, inte månen eller något annat objekt. Du kan antingen skriva in <quote
>Moon</quote
> i rutan för hand, eller trycka på knappen <guibutton
>Objekt</guibutton
> för att använda fönstret <guilabel
>Sök objekt</guilabel
>. Här kan du välja månen i listan med namngivna objekt. Observera att som vanligt aktiveras automatiskt följning vid centrering på ett objekt, så det finns inget behov av att lägga till funktionen <firstterm
>setTracking</firstterm
> efter lookToward. </para
><para
>När vi nu har tagit hand om pekningen mot månen, vill vi som nästa steg få tiden att gå med en accelererad hastighet. Använd funktionen <firstterm
>setClockScale</firstterm
> för detta. Lägg till den i skriptet genom att dubbelklicka på den i funktionsbläddraren. Rutan Funktionsargument innehåller nu inställning av tidssteg för att ange önskat tidssteg för simulatorklockan. Ändra tidssteget till 3 timmar. </para
><para
>Ja, nu har vi pekat på månen och accelererat klockan. Nu vill vi bara att skriptet ska vänta flera sekunder medan skärmen följer månen. Lägg till funktionen <firstterm
>waitFor</firstterm
> i skriptet, och använd panelen Funktionsargument för att ange att det ska vänta i 20 sekunder innan det fortsätter. </para
><para
>För att avsluta, låt oss återställa klockans tidssteg till det normala värdet 1 sekund. Lägg till ytterligare ett anrop till setClockScale, och ställ in värdet 1 sek. </para
><para
>I själva verket är vi inte riktigt klara än. Vi bör troligen försäkra oss om att skärmen använder ekvatoriella koordinater innan skriptet följer månen med ett accelererat tidssteg. Annars, om skärmen använder horisontella koordinater, roterar den mycket snabbt med stora vinklar när månen går upp eller går ner. Det kan vara mycket förvirrande, och kan undvikas genom att ställa in visningsalternativet <firstterm
>UseAltAz</firstterm
> till <quote
>0</quote
>. För att ändra något visningsalternativ, använd funktionen <firstterm
>changeViewOption</firstterm
>. Lägg till funktionen i skriptet, och titta på rutan Funktionsargument. Där finns en kombinationsruta som innehåller en lista med alla alternativ som kan justeras av changeViewOption. Eftersom vi vet att vi vill använda alternativet UseAltAz, kunde vi helt enkelt välja det i kombinationsrutan. Listan är dock rätt lång, och det finns ingen förklaring av vad varje alternativ är till för. Därför kan det vara enklare att trycka på knappen <guibutton
>Bläddringsträd</guibutton
>, som visar ett fönster med en trädvy av tillgängliga alternativ, organiserade enligt ämne. Dessutom har varje alternativ en kort förklaring av vad det gör, och datatyp för alternativets värde. Vi hittar UseAltAz i kategorin <guilabel
>Alternativ för himmelskartan</guilabel
>. Markera bara alternativet och tryck på <guibutton
>Ok</guibutton
>, så väljes det i kombinationsrutan i rutan Funktionsargument. Till sist, ställ in värdet till <quote
>0</quote
> eller <quote
>false</quote
>. </para
><para
>Ytterligare ett steg: Att ändra UseAltAz i slutet på skriptet gör ingen nytta. Vi måste ändra det innan någonting annat händer. Försäkra dig om att funktionen är markerad i rutan Aktuellt skript, och tryck på knappen <guibutton
>Flytta upp</guibutton
> till den är första funktionen. </para
><para
>Nu när vi är klara med skriptet, bör vi spara det på disk. Tryck på knappen <guibutton
>Spara skript</guibutton
>. Då visas först ett fönster där du kan ange ett namn på skriptet, och fylla i ditt namn som författare. Skriv in <quote
>Följa månen</quote
> som namn, och ditt namn som författare, och tryck på <guibutton
>Ok</guibutton
>. Därefter ser du &kde;:s vanliga dialogruta för att spara en fil. Ange skriptets filnamn, och tryck på <guibutton
>Ok</guibutton
> för att spara det. Observera att om filnamnet inte slutar med <quote
>.kstars</quote
>, läggs ändelsen automatiskt till. Om du är nyfiken, kan du titta på skriptet med vilken texteditor som helst. </para
><para
>När vi nu har ett fullständigt skript, kan vi köra det på ett antal olika sätt. Från en terminal kan du helt enkelt köra skriptet, under förutsättning att en instans av &kstars; för närvarande kör. Som ett alternativ kan du köra skriptet inne i &kstars; med alternativet <guimenuitem
>Kör skript...</guimenuitem
> i menyn <guimenu
>Arkiv</guimenu
>. </para>
</sect2>
</sect1>

