Les Items de l'objet project



L'ensemble des éléments de le fenêtre de projet est désigné par le terme items. Comme nous le savons un élément de projet peut être de différente nature: un dossier, un métrage, un solide ou encore une composition. Chacun possède ses propres caractéristiques.

Nous pourrons utiliser l'attribut numItems pour déterminer le nombre d'items dans un projet.

      alert("Votre projet contient " + app.project.numItems + " items.");

numItems


Nous accèderons à un item en particulier grâce à l'objet item(), en précisant son index dans la fenêtre de projet. Cet index a une valeur comprise entre 1 et numItems.

Nous pourrons par exemple utiliser les attributs width et height pour faire référence à la taille d'un item:

      myItem = app.project.item(3);
      alert("L'item 3 est de taille: " + myItem.width + "x" + myItem.height);


item().width & item().height


Si l'item considéré est une composition ou un métrage, on pourra par exemple accéder à sa cadence ( frameRate ) ou à sa durée ( duration ).

      myItem = app.project.item(1);
      alert("item 1: cadence = " + myItem.frameRate + "i/s, durée = " + myItem.duration + "s");


item().frameRate & item().duration



Interprétation


Nous pouvons également avoir accès à l'interprétation d'un item de projet. Toutes les options sont accessibles et modifiables : l'Alpha, la Cadence, les Trames et la conversion ou encore le Format des pixels.

      app.project.item(2).pixelAspect = 1.42;

interpretation - pixel


Pour toutes les autres options de l'interprétation, on utilisera l'objet mainSource qui regroupera toutes les informations liées à l'interprétation de l'item. Pour modifer l'ordre des trames par exemple nous écrirons

      app.project.item(2).mainSource.fieldSeparationType = FieldSeparationType.UPPER_FIELD_FIRST;

interpretation - trames



Remplacer un métrage


Il est possible de remplacer un fichier source appartenant au projet par un autre. Pour ce faire nous utiliserons la méthode replace() sur un item de type FootageItem, en précisant en paramètre le nom du nouveau fichier. Ce fichier devra être déclaré comme un objet File grâce à l'instruction "... = new File()".

      myFile = new File("H:/After Effects/footages/metro_rush.avi");
      app.project.item(2).replace(myFile);


replace() FootageItem



CompItem, FolderItem et FootageItem


Comme nous l'avons rappelé dans la partie précédente, un élément de projet (item) peut appartenir à l'une des trois catégories suivantes: CompItem (s'il s'agit d'une composition), FolderItem (s'il s'agit d'un dossier, qui peut lui-même contenir d'autres items) et FootageItem (s'il s'agit d'un fichier source importé).

On utilisera le mot-clé instanceof pour tester si un élément appartient à l'un de ces ensembles.

      if(app.project.item(3) instanceof FolderItem)
         alert("L'item 3 du projet est un dossier.");


 instanceofFolderItem


Nous pouvons aussi accéder à un item contenu dans un FolderItem. Pour cela on commencera par stocker dans une variable le FolderItem, et on accèdera à ses items par l'objet item() comme on l'a fait à la racine du projet.

      myItem = app.project.item(3);
      alert("Le premier item de l'item 3 se nomme " + myItem.item(1).name);


item d'un FolderItem



Elément actif : activeItem


Nous terminerons cette partie avec un attribut important de l'objet project que l'on rencontre très souvent dans les scripts : l'attribut activeItem. Il désigne l'élément actif du projet, celui qui est en surbrillance. Il peut s'agir par exemple d'un FootageItem de la fenêtre de projet ou en général d'un CompItem (la composition courante) :

      alert("L'item actif est " + app.project.activeItem.name);

activeItem


activeItem