ExtendScript trabalhando com arquivos

<- Artigo anterior: Extendscript Hello World !!!





Olá.





Em um artigo anterior, descrevi como escrever um script para Adobe After Effects. Deixe-me lembrá-lo de que nosso script cria uma janela na interface do programa. Nesta janela, você pode inserir e executar Extendscript, uma linguagem de script para programas Adobe. Agora, quero oferecer a você uma expansão da funcionalidade desse plugin. Vamos fazer com que ele possa carregar e salvar os scripts que escrevemos.





E então vamos embora.





Vamos começar carregando o script. Para fazer isso, adicione o botão Abrir e um manipulador para pressioná-lo.





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



Em primeiro lugar, no manipulador, chamamos a caixa de diálogo para abrir o arquivo. O primeiro argumento para o método estático File.openDialog é um prompt para o usuário. Se o sistema suportar esse prompt, ele será exibido. Caso contrário, este argumento será ignorado.





Este método também aceita um segundo argumento - um método ou uma string (dependendo do sistema operacional) para filtrar a extensão dos arquivos abertos. Mas, por alguma razão, nas versões recentes do AE, esse argumento não funciona, então não o usei neste script. Em vez disso, faremos a verificação apropriada abaixo.





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





Bom, isso é tudo. Resta apenas uma ressalva, nossos botões estão localizados um abaixo do outro, o que não é esteticamente agradável e conveniente. Para corrigir isso, adicionamos um elemento de grupo antes de adicionar os botões.





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



E os próprios botões não serão mais adicionados à janela, mas a este grupo





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



Agora os botões são renderizados embutidos, o que, como você vê, parece muito melhor.





É tudo por agora. Espero que este exemplo tenha sido útil para você. Você pode encontrar o script completo com comentários detalhados aqui . Veja a documentação sobre como trabalhar com arquivos em AE Extendscript aqui .





Obrigado pela atenção.





<- Artigo anterior: Extendscript Hello World !!!








All Articles