Category: api_harmony

  • ✨ API Harmony – Lire la doc

    L’API Harmony est un ensemble de classes mise à disposition par Toonboom pour permettre aux programmeurs d’interagir avec le logiciel. Ces classes sont comme déclarées avant l’exécution de notre scripte et nous pouvons les appeler dans notre code afin d’exécuter leur différentes méthodes.

    Chaque classe de l’api est décrite dans la documentation de scripting d’Harmony. On trouve également dans cette documentation quelque examples de code qu’on peut adapter à nos besoins.

    à gauche la liste des classes accessibles

    à droite la liste des propriétés et méthodes de la classe

    Pour appeler une méthode d’une classe écriver le nom de la classe suivi d’un “.” puis du nom de la méthode.

    Faites attentions à bien passer en argument à la méthode le type de variable décris dans la documentation : ici “String &node”

    var name = node.getName("Top/mynode")

    Pour chaque méthode est également renseigné le type retourné (1)

    à ne pas confondre avec le type de l’argument (2)

    Le code suivant ne fonctionnera pas :

    var name = node.getName(["Top/mynode"]) 
    

    car dans ce cas je passe à la méthode une array et non une string !

  • ✨ API Harmony : Structure d’un Xstage

    Pour comprendre comment est structurée une scène Harmony il n’y pas de meilleur endroit que le fichier xstage.

    Si vous ouvrez un xstage dans un éditeur comme nodepad++ vous verrez qu’il s’agit enfait d’un énorme bloc de texte.

    Ce bloc de texte est structuré en balises </> selon un language qu’on appel XML pour eXtensible Markup Language (langage de balisage extensible). Tout ce qui fait la particularité d’une scene, à l’exeption des fichiers vectoriels de dessin, est décrit dans ce xml.

    Ce que vous avez sous les yeux est l’arborescence d’un immense objet xml. Le language xml, comme le json, est un language conçu uniquement pour organiser des données.

    voici notre fiche perso dnd en json

    {
      "name":"guntar",
      "type":"barbare",
      "statistiques" : {
        "endurance":100,
        "attaque":100,
        "interet_pour_la_bossa_nova":0,
        "conversation":5
      }
    }

    et voici le meme objet en xml

    <perso name="guntar" type="barbare" >
      <statistiques>
        <endurance val='100' />
        <attaque val='100' />
        <interetPourLaBossaNova val='0' />
        <conversation val='5' />
      </statistiques>
    </pers>

    L’arborescence d’un objet xml est un peu plus complexe que celle d’un objet json car elle est spécialement pensée pour décrire des ensembles et sous ensembles.

    Le contenu d’un element xml se situe entre :

    ses balises d’ouverture <element>

    Dans cet example on dit que l’elementA est le “parent” de l’elementB. L’élementB est un sous ensemble d’élémentA.

    Il exsite des balises qui n’englobent rien comme ici les statistiques <endurance />

    Chaque balise possède aussi des “propriétés” (name=”guntar”) qui sont une façon de renseigner des valeurs indépendament de la hiérarchie.

    Dans le xml d’un xstage les nodes sont décrit par des balises <module> </module>

    en propriété du module nous avons son type,nom et position dans la nodeview :

    si vous modifiez ces valeurs et sauvegarder le xml. Votre scène sera modifiée !

    En sous élement du module se trouve l’élément <attrs> </attrs>

    C’est là que se déroule toute la liste des attributs du node. Ce sont ces données là qui sont affichée lorsque l’on ouvre la fenêtre “node properties” dans Harmony.

    C’est aussi ces objets que nous allons modifier lorsque nous utilisons les methodes de la classe node : node.getTextAttr et node.setTextAttr