ExtendScript trabajando con archivos

<- Artículo anterior: Extendscript Hello World !!!





Hola.





En un artículo anterior, describí cómo escribir un guión para Adobe After Effects. Permítame recordarle que nuestro script crea una ventana en la interfaz del programa. En esta ventana, puede ingresar y ejecutar Extendscript, un lenguaje de secuencias de comandos para programas de Adobe. Ahora quiero ofrecerles una expansión de la funcionalidad de este complemento. Hagámoslo para que pueda cargar y guardar los scripts que hemos escrito.





Y entonces, vamos.





Comencemos cargando el script. Para hacer esto, agregue el botón Abrir y un controlador para presionarlo.





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



En primer lugar, en el controlador, llamamos al cuadro de diálogo para abrir el archivo. El primer argumento del método estático File.openDialog es un mensaje para el usuario. Si el sistema admite este mensaje, se mostrará. De lo contrario, se ignorará este argumento.





Este método también acepta un segundo argumento: un método o una cadena (según el sistema operativo) para filtrar la extensión de los archivos abiertos. Pero por alguna razón, en versiones recientes de AE, este argumento no funciona, así que no lo usé en este script. En su lugar, haremos la verificación adecuada a continuación.





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





Bueno eso es todo. Solo queda una advertencia, nuestros botones están ubicados uno debajo del otro, lo que no es muy agradable y conveniente estéticamente. Para solucionar esto, agregamos un elemento de grupo antes de agregar los botones.





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



Y los botones mismos ya no se agregarán a la ventana, sino a este grupo





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



Ahora los botones se representan en línea, lo que, como ve, se ve mucho mejor.





Eso es todo por ahora. Espero que este ejemplo te haya sido útil. Puede encontrar el guión completo con comentarios detallados aquí . Consulte la documentación sobre cómo trabajar con archivos en AE Extendscript aquí .





Gracias por su atención.





<- Artículo anterior: Extendscript Hello World !!!








All Articles