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.");
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);
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");
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;
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;
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);
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.");
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);
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);
|