<- Article précédent: Extendscript Hello World !!!
Bonjour.
Dans un article précédent, j'ai décrit comment écrire un script pour Adobe After Effects. Permettez-moi de vous rappeler que notre script crée une fenêtre dans l'interface du programme. Dans cette fenêtre, vous pouvez entrer et exécuter Extendscript, un langage de script pour les programmes Adobe. Maintenant, je veux vous proposer une extension des fonctionnalités de ce plugin. Faisons en sorte qu'il puisse charger et enregistrer les scripts que nous avons écrits.
Et donc, allons-y.
Commençons par charger le script. Pour ce faire, ajoutez le bouton Ouvrir et un gestionnaire pour appuyer dessus.
var btnOpenFile = win.add('button', undefined, 'open');
btnOpenFile.onClick = function() {
var file = File.openDialog(' Adobe AE');
if (!file) return;
if (/\.(jsx|js)$/.test(file.name)) {
file.open("r");
editText.text = file.read();
file.close();
} else {
alert(" " + file.name + " .js .jsx")
}
};
Tout d'abord, dans le gestionnaire, nous appelons la boîte de dialogue pour ouvrir le fichier. Le premier argument de la méthode statique File.openDialog est une invite pour l'utilisateur. Si le système prend en charge une telle invite, elle sera affichée. Sinon, cet argument sera ignoré.
Cette méthode accepte également un deuxième argument - une méthode ou une chaîne (selon le système d'exploitation) pour filtrer l'extension des fichiers ouverts. Mais pour une raison quelconque, dans les versions récentes d'AE, cet argument ne fonctionne pas, donc je ne l'ai pas utilisé dans ce script. Au lieu de cela, nous effectuerons la vérification appropriée ci-dessous.
, File.openDialog File. , , null.
if (!file) return;
. , .
/\.(jsx|js)$/.test(file.name)
.js .jsx. AE . , , open “r” - read, , .
file.open("r");
editText.text = file.read();
file.close();
, , .
alert(" " + file.name + " .js .jsx")
. , .
. Save.
var btnSaveFile = win.add('button', undefined, 'save');
btnSaveFile.onClick = function() {
var file = File.saveDialog(' Adobe AE');
if (!file) return;
if (!/\.(jsx|js)$/.test(file.name)) {
file.rename(file.name + '.jsx')
}
file.open('w');
file.write(editText.text);
file.close();
};
, . .
var file = File.saveDialog(' Adobe AE');
File.saveDialog null
if (!file) return;
, .js .jsx, ,
if (!/\.(jsx|js)$/.test(file.name)) {
file.rename(file.name + '.jsx')
}
, rename.
. , . , . , After Effects . , Preferences > Scripting & Expressions, Allow Scripts to Write Files and Access Network. , , .
Eh bien voilà tout. Il ne reste qu'une seule mise en garde, nos boutons sont situés les uns sous les autres, ce qui n'est pas très esthétique et pratique. Pour résoudre ce problème, nous ajoutons un élément de groupe avant d'ajouter les boutons.
var btnsGroup = win.add('group');
Et les boutons eux-mêmes ne seront plus ajoutés à la fenêtre, mais à ce groupe
var btnRun = btnsGroup.add('button', undefined, 'run');
var btnOpenFile = btnsGroup.add('button', undefined, 'open');
var btnSaveFile = btnsGroup.add('button', undefined, 'save');
Maintenant, les boutons sont rendus en ligne, ce qui, vous voyez, semble beaucoup mieux.
C'est tout pour le moment. J'espère que cet exemple vous a été utile. Vous pouvez trouver le script complet avec des commentaires détaillés ici . Consultez la documentation sur l'utilisation des fichiers dans AE Extendscript ici .
Merci de votre attention.
<- Article précédent: Extendscript Hello World !!!