ExtendScript Arbeiten mit Dateien

<- Vorheriger Artikel: Extendscript Hello World !!!





Hallo.





In einem früheren Artikel habe ich beschrieben, wie Sie ein Skript für Adobe After Effects schreiben. Ich möchte Sie daran erinnern, dass unser Skript ein Fenster in der Programmoberfläche erstellt. In diesem Fenster können Sie Extendscript eingeben und ausführen, eine Skriptsprache für Adobe-Programme. Jetzt möchte ich Ihnen eine Erweiterung der Funktionalität dieses Plugins anbieten. Machen wir es so, dass es die von uns geschriebenen Skripte laden und speichern kann.





Und so, lass uns gehen.





Beginnen wir mit dem Laden des Skripts. Fügen Sie dazu die Schaltfläche Öffnen und einen Handler zum Drücken hinzu.





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



Zunächst rufen wir im Handler das Dialogfeld auf, um die Datei zu öffnen. Das erste Argument für die statische Methode File.openDialog ist eine Eingabeaufforderung für den Benutzer. Wenn das System eine solche Eingabeaufforderung unterstützt, wird sie angezeigt. Andernfalls wird dieses Argument ignoriert.





Diese Methode akzeptiert auch ein zweites Argument - eine Methode oder eine Zeichenfolge (je nach Betriebssystem) zum Filtern der Erweiterung geöffneter Dateien. Aus irgendeinem Grund funktioniert dieses Argument in neueren Versionen von AE nicht, sodass ich es in diesem Skript nicht verwendet habe. Stattdessen werden wir unten die entsprechende Überprüfung durchführen.





, 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. , , .





Nun, das ist alles. Es gibt nur noch eine Einschränkung, unsere Tasten befinden sich untereinander, was ästhetisch nicht sehr ansprechend und praktisch ist. Um dies zu beheben, fügen wir vor dem Hinzufügen der Schaltflächen ein Gruppenelement hinzu.





var btnsGroup = win.add('group');
      
      



Und die Schaltflächen selbst werden nicht mehr zum Fenster hinzugefügt, sondern zu dieser Gruppe





var btnRun = btnsGroup.add('button', undefined, 'run');
var btnOpenFile = btnsGroup.add('button', undefined, 'open');
var btnSaveFile = btnsGroup.add('button', undefined, 'save');
      
      



Jetzt werden die Schaltflächen inline gerendert, was, wie Sie sehen, viel besser aussieht.





Das ist alles für jetzt. Ich hoffe, dieses Beispiel hat Ihnen geholfen. Das vollständige Skript mit detaillierten Kommentaren finden Sie hier . Die Dokumentation zum Arbeiten mit Dateien in AE Extendscript finden Sie hier .





Vielen Dank für Ihre Aufmerksamkeit.





<- Vorheriger Artikel: Extendscript Hello World !!!








All Articles