Skip to main content

Criando Seu Próprio Script no after

Criar um script do zero parece assustador mas não é. Você começa com uma tarefa repetitiva, automatiza, e vai evoluindo. Esse ciclo funciona.

Do problema ao script

  1. Identifique uma tarefa repetitiva (ex: sempre crio um nulo e parento 5 layers)
  2. Faça manualmente uma vez, anotando cada passo
  3. Traduza cada passo para ExtendScript
  4. Teste, corrija, refine
  5. Adicione interface se usar frequentemente

Estrutura com interface (ScriptUI)

// Script com janela de interface
(function(thisObj) {
function buildUI(thisObj) {
var panel = (thisObj instanceof Panel) ?
thisObj : new Window("palette", "Meu Script", undefined);
panel.orientation = "column";
panel.margins = 10;
// Campo de texto
var labelGroup = panel.add("group");
labelGroup.add("statictext", undefined, "Prefixo:");
var prefixInput = labelGroup.add("edittext", undefined, "Element_");
prefixInput.characters = 15;
// Botão
var runBtn = panel.add("button", undefined, "Executar");
runBtn.onClick = function() {
runScript(prefixInput.text);
};
if (panel instanceof Window) {
panel.center();
panel.show();
} else {
panel.layout.layout(true);
}
return panel;
}
function runScript(prefix) {
var comp = app.project.activeItem;
if (!comp || !(comp instanceof CompItem)) {
alert("Selecione uma composição.");
return;
}
var selected = comp.selectedLayers;
if (selected.length === 0) {
alert("Selecione ao menos uma layer.");
return;
}
app.beginUndoGroup("Renomear com prefixo");
for (var i = 0; i < selected.length; i++) {
selected[i].name = prefix + ("00" + (i + 1)).slice(-2);
}
app.endUndoGroup();
alert(selected.length + " layers renomeadas.");
}
buildUI(thisObj);
})(this);

Boas práticas

Sempre use undo groups:

app.beginUndoGroup("Nome descritivo");
// modificações
app.endUndoGroup();

Sempre valide o contexto:

var comp = app.project.activeItem;
if (!comp || !(comp instanceof CompItem)) {
alert("Selecione uma composição primeiro.");
exit();
}

Instalando e distribuindo

Para instalar em outros computadores:

  1. Salve como .jsx (script simples) ou .jsxbin (compilado, sem código visível)
  2. Copie para a pasta Scripts ou ScriptUI Panels do after
  3. Reinicie o after

Para compilar .jsxbin (protege o código): no ExtendScript Toolkit, File > Export to JSXBin

Publicando no aescripts.com

O aescripts.com é o marketplace de scripts para after. Você pode publicar gratuitamente ou com preço:

  1. Crie uma conta de desenvolvedor
  2. Submeta o script com documentação e demo
  3. Defina o preço (ou grátis)
  4. A plataforma cuida do sistema de licença

Tip

Antes de publicar, teste em 2-3 versões diferentes do after. A API tem mudanças sutis entre versões e um script que funciona no CC 2024 pode quebrar no CC 2022.