<-前の記事:Extendscript Hello World !!!
こんにちは。
では前の記事、私はAfter Effectsはアドビシステムズ社のためのスクリプトを作成する方法を説明しました。スクリプトがプログラムインターフェイスにウィンドウを作成することを思い出してください。このウィンドウでは、Adobeプログラムのスクリプト言語であるExtendscriptを入力して実行できます。ここで、このプラグインの機能の拡張を提供したいと思います。作成したスクリプトを読み込んで保存できるようにしましょう。
それでは、行きましょう。
スクリプトをロードすることから始めましょう。これを行うには、[開く]ボタンとそれを押すためのハンドラーを追加します。
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")
}
};
まず、ハンドラーでダイアログボックスを呼び出してファイルを開きます。静的メソッドFile.openDialogの最初の引数は、ユーザーへのプロンプトです。システムがそのようなプロンプトをサポートしている場合は、それが表示されます。それ以外の場合、この引数は無視されます。
このメソッドは、2番目の引数(開いているファイルの拡張子をフィルタリングするためのメソッドまたは文字列(OSによって異なります))も受け入れます。しかし、何らかの理由で、AEの最近のバージョンでは、この引数は機能しないため、このスクリプトでは使用しませんでした。代わりに、以下で適切なチェックを行います。
, 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. , , .
まあ、それだけです。注意点は1つだけ残っています。ボタンは互いに下に配置されているため、見た目が美しく便利ではありません。これを修正するには、ボタンを追加する前にグループ要素を追加します。
var btnsGroup = win.add('group');
そして、ボタン自体はウィンドウに追加されなくなりますが、このグループに追加されます
var btnRun = btnsGroup.add('button', undefined, 'run');
var btnOpenFile = btnsGroup.add('button', undefined, 'open');
var btnSaveFile = btnsGroup.add('button', undefined, 'save');
これで、ボタンがインラインでレンダリングされ、見た目がはるかに良くなりました。
それは今のところすべてです。この例がお役に立てば幸いです。詳細なコメントを含む完全なスクリプトは、ここにあります。AEExtendscriptでのファイルの操作に関するドキュメントはこちらをご覧ください。
清聴ありがとうございました。
<-前の記事:Extendscript Hello World !!!