{"id":30,"date":"2025-08-26T19:20:02","date_gmt":"2025-08-26T18:20:02","guid":{"rendered":"https:\/\/www.alarigger.com\/?p=30"},"modified":"2025-08-26T19:20:02","modified_gmt":"2025-08-26T18:20:02","slug":"lapi-harmony-part-1","status":"publish","type":"post","link":"https:\/\/www.alarigger.com\/?p=30","title":{"rendered":"\u2728 API Harmony &#8211; Lire la doc"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">L&#8217;API Harmony est un ensemble de classes mise \u00e0 disposition par Toonboom pour permettre aux programmeurs d&#8217;interagir avec le logiciel. Ces classes sont comme d\u00e9clar\u00e9es avant l&#8217;ex\u00e9cution de notre scripte et nous pouvons les appeler dans notre code afin d&#8217;ex\u00e9cuter leur diff\u00e9rentes m\u00e9thodes. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chaque classe de l&#8217;api est d\u00e9crite dans la <a href=\"https:\/\/docs.toonboom.com\/help\/harmony-22\/scripting\/script\/classnode.html\">documentation de scripting d&#8217;Harmony<\/a>. On trouve \u00e9galement dans cette documentation quelque examples de code qu&#8217;on peut adapter \u00e0 nos besoins. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"322\" src=\"http:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-14-1-1024x322.png\" alt=\"\" class=\"wp-image-1279\" srcset=\"https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-14-1-1024x322.png 1024w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-14-1-300x94.png 300w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-14-1-768x242.png 768w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-14-1.png 1186w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e0 gauche la liste des classes accessibles <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e0 droite la liste des propri\u00e9t\u00e9s et m\u00e9thodes de la classe <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"430\" src=\"http:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-12-1-1024x430.png\" alt=\"\" class=\"wp-image-1271\" srcset=\"https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-12-1-1024x430.png 1024w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-12-1-300x126.png 300w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-12-1-768x323.png 768w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-12-1.png 1219w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pour appeler une m\u00e9thode d&#8217;une classe \u00e9criver le nom de la classe suivi d&#8217;un &#8220;.&#8221; puis du nom de la m\u00e9thode. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Faites attentions \u00e0  bien passer en argument \u00e0 la m\u00e9thode le type de variable d\u00e9cris dans la documentation : ici &#8220;String &amp;node&#8221;<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>var name = node.getName(\"Top\/mynode\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">name<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">getName<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Top\/mynode&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Pour chaque m\u00e9thode est \u00e9galement renseign\u00e9 le type retourn\u00e9 (1) <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"133\" src=\"http:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-13-1.png\" alt=\"\" class=\"wp-image-1275\" style=\"width:697px;height:auto\" srcset=\"https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-13-1.png 692w, https:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/image-13-1-300x58.png 300w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e0 ne pas confondre avec le type de l&#8217;argument (2) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le code suivant ne fonctionnera pas : <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>var name = node.getName(&#91;\"Top\/mynode\"&#93;) \n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">name<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">getName<\/span><span style=\"color: #D4D4D4\">(&#91;<\/span><span style=\"color: #CE9178\">&quot;Top\/mynode&quot;<\/span><span style=\"color: #D4D4D4\">&#93;) <\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">car dans ce cas je passe \u00e0 la m\u00e9thode une array et non une string ! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;API Harmony est un ensemble de classes mise \u00e0 disposition par Toonboom pour permettre aux programmeurs d&#8217;interagir avec le logiciel. Ces classes sont comme d\u00e9clar\u00e9es avant l&#8217;ex\u00e9cution de notre scripte et nous pouvons les appeler dans notre code afin d&#8217;ex\u00e9cuter leur diff\u00e9rentes m\u00e9thodes. Chaque classe de l&#8217;api est d\u00e9crite dans la documentation de scripting d&#8217;Harmony. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4,11,12],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-api_harmony","category-cour","category-harmony_nodes","category-harmony_selection"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30"}],"version-history":[{"count":0,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/posts\/30\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}