Travailler avec la sélection utilisateur

Objectif : lire et analyser les éléments permettant d’obtenir la sélection utilisateur.

1 – récupérer le .jsx de travail

Télécharger exemple-selection-utilisateur.jsx (à placer dans le dossier Scripts ou Scripts/ScriptUI)

2 – construction de l’interface

// on récupère la référence à la palette (ou on en créé une)
var fenetre = (this instanceof Panel) ? this : new Window( 'palette', 'script', undefined, { resizeable: true });

// limites = [ ← gauche, ↑ haut, → droite, ↓ bas ]
var limites_bouton = [ 5, 5, 105, 25 ];

// texte à afficher sur le bouton
var texte_bouton = 'cliquez-moi !';

// création du bouton et ajout à notre fenêtre
var bouton_valider = fenetre.add( 'button', limites_bouton, texte_bouton );

Note

À ce stade, cette partie ne doit plus nécéssiter de commentaire

3 – interaction

// on prend notre bouton, on associe à sa propriété onClick une fonction
// lorsque le bouton sera cliqué,
// la fonction associée à la propriété onClick sera exécutée
bouton_valider.onClick = function () {

/* code à exécuter */

}

Note

À ce stade, cette partie ne doit plus nécéssiter de commentaire

4 – obtenir la référence de la composition active

// on récupère la composition active
var composition_active = app.project.activeItem;

// si on a aucune composition sélectionnée
if ( !composition_active || !(composition_active instanceof CompItem) ) {
  // à noter que le mot clé return va mettre fin à la fonction actuelle
  return alert("Aucune composition sélectionnée.");
}

Note

app.project.activeItem est une référence à la composition active.

En vérifiant que que cet élément est une instance de la classe CompItem et non un élément null ou non défini, on peut vérifier qu’une composition est active.

Si l’élément n’est pas une composition, on utilise le mot clé return pour terminer la fonction courante sans la poursuivre, et en affichant un message d’erreur.

5 – obtenir la référence des calques sélectionnés

// sinon, on récupère les calques sélectionnés
var calques_selectionnes = composition_active.selectedLayers;

// si on a aucun calque sélectionné
if ( calques_selectionnes.length == 0 ) {
  return alert("Aucun calque sélectionné.");
}

Note

Ce code est très similaire au code précédent. Ici on obtient la propriété selectedLayers de la composition active, correspondant aux calques sélectionnés.

Si le nombre de calque sélectionnés est de 0, on affiche un message et on met fin à la fonction.