<sect1 id="tool-scriptbuilder">
<title
>L'eina Constructor de scripts</title>
<indexterm
><primary
>Eines</primary>
<secondary
>Constructor de scripts</secondary>
</indexterm>

<para
>Les aplicacions &kde; es poden controlar externament des d'un altre programa, des d'un indicatiu de la consola o des d'un script de l'intèrpret d'ordres emprant el protocol de comunicació inter-processos (&DBus;). El &kstars; s'aprofita d'aquesta característica per a permetre que els comportaments complexos siguin escrits a scripts i executats en segon pla en qualsevol moment. Això es pot utilitzar, per exemple, per a crear una presentació educativa per a il·lustrar un concepte astronòmic. </para>
<para
>El problema amb els scripts de &DBus; és que escriure'ls és gairebé com programar, i poden aparentar una tasca descoratjadora per als que no tenen experiència programant. L'eina Constructor de scripts, proporciona una <abbrev
>IGU</abbrev
> amb interfície apunta i fes clic per a construir scripts de &DBus; per al &kstars;, tornant realment fàcil el fet de crear-ne de complexos. </para>

<sect2 id="sb-intro">
<title
>Introducció al constructor de scripts</title>

<para
>Abans d'explicar com emprar el constructor de scripts, us proporcionen una molt breu introducció a tots els components de la <abbrev
>IGU</abbrev
>; per a més informació, utilitzeu la funció <quote
>Què és això?</quote
>. </para>

<screenshot>
<screeninfo
>L'eina Constructor de scripts </screeninfo>
<mediaobject>
  <imageobject>
    <imagedata fileref="scriptbuilder.png" format="PNG"/>
  </imageobject>
  <textobject>
    <phrase
>Eina Constructor de scripts</phrase>
  </textobject>
</mediaobject>
</screenshot>

<para
>El constructor de scripts és mostra't a la captura de pantalla de sota. El quadre a l'esquerra és el quadre <firstterm
>Script actual</firstterm
>; mostra el llistat d'ordres que abasten l'escriptura de tasques a aquest script. El quadre a la dreta és el <firstterm
>Navegador de funcions</firstterm
>. Aquest mostra un llistat de totes les funcions disponibles per a l'script. A sota del navegador de funcions, hi ha un petit plafó que anirà mostrant la documentació curta sobre cada funció ressaltada en el navegador de funcions. En el plafó a sota de Script actual és el d'<firstterm
>Arguments de la funció</firstterm
>; quan es ressalta a una funció en el quadre Script actual, aquest plafó contindrà els elements per a especificar els valors per a qualsevol argument que requereixi aquesta funció. </para
><para
>Al llarg de la part superior de la finestra, hi ha una fila de botons que operen sobre tot l'script. D'esquerra a dreta, són: <guibutton
>Nou script</guibutton
>, <guibutton
>Obre un script...</guibutton
>, <guibutton
>Desa script</guibutton
>, <guibutton
>Desa l'script com a...</guibutton
> i <guibutton
>Prova l'script</guibutton
>. La funció d'aquests botons hauria de resultar òbvia, a excepció potser de l'últim botó. El fet de prémer <guibutton
>Prova l'script</guibutton
> resultarà en l'intent d'executar l'actual script a la finestra principal del &kstars;. Abans de prémer haureu d'apartar la finestra del constructor de scripts per a poder veure els resultats. </para
><para
>En el centre de la finestra (entre les dues caixes superiors), hi ha una columna de botons que operen sobre les funcions individuals de l'script. De dalt a baix, són: <guibutton
>Afegeix una funció</guibutton
>, <guibutton
>Elimina la funció</guibutton
>, <guibutton
>Copia la funció</guibutton
>, <guibutton
>Mou amunt</guibutton
> i <guibutton
>Mou avall</guibutton
>. <guibutton
>Afegeix una funció</guibutton
>, afegirà la funció ressaltada en el navegador de funcions al quadre Script actual (també podeu afegir una funció fent doble clic a sobre seu). La resta de botons opera sobre la funció ressaltada al quadre Script actual, eliminant-la, duplicant-la, o canviant la seva posició a l'script actual. </para>
</sect2>

<sect2 id="sb-using">
<title
>Emprar el constructor de scripts</title>
<para
>Per a il·lustrar l'ús del constructor de scripts tot seguit us presentem una petita guia d'aprenentatge, en la qual creem un script que segueixi a la Lluna mentre el rellotge funciona en mode accelerat. </para
><para
>Si seguim la Lluna, primer necessitarem apuntar la vista cap a ella. La funció <firstterm
>lookToward</firstterm
> s'empra per a fer això. Ressalteu aquesta funció en el Navegador de funcions i observeu la documentació mostrada en el plafó a sota del navegador. Premeu el botó <guibutton
>Afegeix una funció</guibutton
> per a afegir aquesta funció al quadre Script actual. El plafó Arguments de la funció ara contindrà una llista desplegable anomenada com a <quote
>Dir</quote
>, abreujament per a direcció. Aquesta és la direcció en la qual la vista haurà d'apuntar. El quadre combinat tan sols conté els punts cardinals, no la Lluna o cap altre objecte. Podeu introduir la <quote
>Lluna</quote
> en el quadre manualment o prement el botó <guibutton
>Objecte...</guibutton
> per a emprar la finestra <guilabel
>Troba l'objecte...</guilabel
> per a seleccionar la Lluna des de la llista d'objectes. Cal tenir present que, com és habitual, el fet de centrar en un objecte inicia automàticament el mode de seguiment d'aquest, pel que no hi ha cap necessitat d'afegir la funció <firstterm
>setTracking</firstterm
> després de lookToward. </para
><para
>Ara que hem pres cura d'apuntar a la Lluna, tot seguit desitgem establir un pas temporal accelerat. Utilitzeu la funció <firstterm
>setClockScale</firstterm
> per a això. Afegiu-la a l'script fent doble clic a sobre seu en el Navegador de funcions. El plafó Arguments de la funció contindrà un botó de selecció de valors de pas temporal per a establir-lo al temps desitjat per al rellotge de simulació. Canvieu el pas temporal a 3 hores. </para
><para
>BÉ, hem apuntat a la Lluna i accelerat el rellotge. Ara voldríem ajustar l'script perquè esperi uns pocs segons mentre que es fa el seguiment de la Lluna. Afegiu la funció <firstterm
>waitFor</firstterm
> a l'script i empreu el plafó Arguments de la funció per a especificar que s'haurà d'esperar 20 segons abans de continuar. </para
><para
>Per a acabar, reajustem el pas temporal del rellotge al valor normal d'1 segon. Afegiu una altra instància de setClockScale i establiu el seu valor a 1 seg. </para
><para
>Realment, encara no fa res. Probablement haurem d'assegurar-nos que la vista està emprant les coordenades equatorials abans que l'script faci un seguiment a la Lluna amb un pas temporal accelerat. D'altra manera, si la vista està emprant coordenades horitzontals, farà la rotació molt ràpidament amb grans angles com quan surt i es pon la Lluna. Això pot resultar molt confós i s'evita establint l'opció <firstterm
>UseAltAz</firstterm
> de les Opcions de la vista a <quote
>false</quote
> (fals). Per a canviar qualsevol opció de la vista, empreu la funció <firstterm
>changeViewOption</firstterm
>. Afegiu aquesta funció a l'script i examineu el plafó Arguments de la funció. Hi haurà una llista desplegable que conté el llistat de totes les Opcions de la vista que pot ajustar changeViewOption. Atès que sabem que volem l'opció UseAltAz, nosaltres podríem simplement seleccionar-la des del quadre combinat. No obstant això, resulta que la llista és inversemblantment llarga i no hi ha explicacions de per què serveix cada element. Per tant, podria ser més fàcil prémer el botó <guibutton
>Navega per l'arbre...</guibutton
>, el qual obrirà una finestra que conté una vista en arbre de les opcions de la vista, organitzada per assumpte. A més, cada element disposa d'una curta explicació del que fa aquesta opció, i el tipus de dades del valor de l'opció. Trobarem a UseAltAz sota la categoria <guilabel
>Opcions per al mapa del cel</guilabel
>. Simplement ressalteu aquest element, premeu <guibutton
>D'acord</guibutton
> i aquest serà seleccionat al quadre combinat del plafó Arguments de la funció. Finalment, feu que el seu valor sigui <quote
>false</quote
> (fals) o <quote
>0</quote
>. </para
><para
>Un pas més: El fet de tenir a UseAltAz al final de l'script no ens farà cap servei, necessitarem canviar això abans que succeeixi res. Així doncs, assegureu-vos que aquesta funció estigui ressaltada al quadre Script actual i premeu el botó <guibutton
>Mou amunt</guibutton
> fins que aquesta sigui la primera funció. </para
><para
>Ara que hem finalitzat l'script, hem de desar-lo al disc. Premeu el botó <guibutton
>Desa l'script</guibutton
>. Primer obrirà una finestra en la qual podreu indicar un nom per a l'script i el vostre com a autor. Introduïu <quote
>Seguiment de la Lluna</quote
> com a nom, i el vostre nom en el de l'autor, tot seguit premeu <guibutton
>D'acord</guibutton
>. Després, veureu al diàleg per a desar fitxers estàndard del &kde;. Especifiqueu un nom de fitxer per a l'script i premeu <guibutton
>D'acord</guibutton
> per a desar-lo. Cal tenir en compte que el vostre nom de fitxer no acabi amb <quote
>.kstars</quote
>, aquest sufix li serà afegit automàticament. Si sou curiós de mena, podeu examinar el fitxer de l'script amb qualsevol editor de text. </para
><para
>Ara que tenim l'script completat, podem executar-lo en un parell de maneres. Des d'un indicatiu a la consola, podeu simplement executar l'script mentre una instància del &kstars; s'estigui executant actualment. De manera alternativa, també podeu executar l'script des de dintre del &kstars; emprant l'element de menú <menuchoice
><guimenu
>Fitxer</guimenu
> <guimenuitem
>Executa un script...</guimenuitem
></menuchoice
>. </para>
</sect2>
</sect1>

