
【scriptLibrary】スクリプトのソースコードを解説!
今回は、特定のフォルダに保存されたスクリプトを簡単に選択・実行できるスクリプト【scriptLibrary】のソースコードを解説します。
スクリプトの概要
このスクリプトは、フォルダを指定し、そのフォルダ内の .jsx ファイルを一覧表示、選択して実行できる仕組みを提供します。
主な機能は以下の通りです。
スクリプトフォルダの選択・保存
フォルダ内のスクリプト一覧を表示
選択したスクリプトを実行
フォルダの変更が可能
ソースコードの解説
以下、ソースコードの主要な部分を解説します。
1. スクリプトエンジンのターゲット設定
#targetengine "main"
このコードは、スクリプトが実行されるエンジンを指定します。これにより、スクリプトが独立したプロセスとして動作し、継続的に実行されるようになります。
2. フォルダパスの保存
var settingsFile = new File(Folder.userData + "/illustrator_script_folder.txt");
このコードは、ユーザーのデータフォルダに illustrator_script_folder.txt というファイルを作成し、スクリプトフォルダのパスを保存する役割を果たします。
3. フォルダの取得と選択
function getScriptFolder() {
if (settingsFile.exists) {
settingsFile.open("r");
var folderPath = settingsFile.read();
settingsFile.close();
var scriptFolder = new Folder(folderPath);
if (scriptFolder.exists) {
return scriptFolder;
} else {
alert("保存されたフォルダが見つかりません。再度フォルダを選択してください。");
}
}
return selectAndSaveFolder(); }
この関数は、保存されたフォルダのパスを取得し、フォルダが存在する場合はそのパスを返します。存在しない場合は、新たにフォルダを選択するよう促します。
4. フォルダの選択と保存
function selectAndSaveFolder() {
var scriptFolder = Folder.selectDialog("スクリプトフォルダーを選択してください");
if (scriptFolder) {
settingsFile.open("w");
settingsFile.write(scriptFolder.fsName);
settingsFile.close();
return scriptFolder;
}
return null;
}
この関数は、新しくスクリプトフォルダを選択し、そのパスを保存します。
5. スクリプトの実行
function executeScript(file) {
if (file instanceof File) {
var bt = new BridgeTalk();
bt.target = "illustrator";
bt.body = "$.evalFile('" + file.fsName + "')";
bt.onError = function(err) {
alert("Error executing: " + file.displayName + "\n" + err.body);
};
bt.send();
}
}
この関数は、選択されたスクリプトファイルをIllustratorで実行する処理を行います。BridgeTalk を使用することで、Illustratorの環境でスクリプトを安全に評価・実行できます。
実際にスクリプトを活用しよう!
このスクリプトを活用することで、Illustratorでのスクリプト実行をよりスムーズに行うことができます。
【scriptLibrary】は、ブログからDLできます。
さらに詳しい解説や他のスクリプトもブログで紹介しています。ぜひチェックしてみてください!
▶ 詳しくはこちらのブログへ!