レイヤーごとSWFで出力する

今回はIllustrator CS2でレイヤーを個別にSWF (Flashムービー) として出力するスクリプトです。以下のスクリプトを実行するとドライブ(ボリューム)のルートに「000_レイヤー名.swf」といったファイル名でSWFファイルが生成されます。生成されるSWFファイルはQuickTimeプレイヤーでは再生できません。また、プラグインのバージョンが低い場合も表示されないことがあります。
SWFファイルの保存先を変更するには

new File("/000_"+layObj[i].name+".swf")

のカッコ内を変更してください。ここに保存先のフォルダのパスとファイル名を指定します。
layObj[i].nameはレイヤー名を示します。
実行前にIllustrator CS2のバージョンが12.0.1以上になっているかどうか確認してからにしてください。これ以前のバージョンではレイヤー名が日本語の場合、正しく処理されないためです。

docObj = app.activeDocument;
layObj = docObj.layers;
for (i=layObj.length-1; i>-1 ; i--){
for(j=0; j<layObj.length; j++){
layObj[j].visible = false;
}
layObj[i].visible = true;
exportOptions = new ExportOptionsFlash();
exportOptions.resolution = 150; // 解像度(150dpi)
exportOptions.artBoardClipping = true; // クリッピング
exportOptions.frameRate = 12; // フレームレート
exportOptions.generateHTML = false; // HTMLファイルの生成フラグ
exportOptions.jpegQuality = 5; // JPEG画質(1〜10)
saveFile = new File("/000_"+layObj[i].name+".swf");
app.activeDocument.exportFile(saveFile, ExportType.FLASH, exportOptions );
}


Illustratorのアートボードでクリッピングするかどうかは以下の行で指定します。

exportOptions.artBoardClipping = true;

trueの場合はアートボードでクリッピング(アートボード内のみ表示)されます。falseの場合は、アートボードに関係なく存在すれば出力されます。
SWFとともにHTMLファイルも生成したい場合には以下の行で指定します。

exportOptions.generateHTML = false;

ここをfalseにするとHTMLファイルは生成されず、trueにすると生成されます。
書き出すレイヤーに画像が含まれる場合はJPEG画質を設定することができます。JPEG画質は以下の行で指定します。

exportOptions.jpegQuality = 5;

1が最低画質で10が最高画質になります。
毎回同じところに保存するのではなく、任意のフォルダに保存したい場合は以下のようになります。実行すると保存先のフォルダを聞いてきます。フォルダを指定すると、そのフォルダにファイルが保存されます。

folderObj = Folder.selectDialog("保存先フォルダを選択してください");
docObj = app.activeDocument;
layObj = docObj.layers;
for (i=layObj.length-1; i>-1 ; i--){
for(j=0; j<layObj.length; j++){
layObj[j].visible = false;
}
layObj[i].visible = true;
exportOptions = new ExportOptionsFlash();
exportOptions.resolution = 150; // 解像度(150dpi)
exportOptions.artBoardClipping = true; // クリッピング
exportOptions.frameRate = 12; // フレームレート
exportOptions.generateHTML = false; // HTMLファイルの生成フラグ
exportOptions.jpegQuality = 5; // JPEG画質(1〜10)
saveFile = new File(folderObj.fsName+"/000_"+layObj[i].name+".swf");
app.activeDocument.exportFile(saveFile, ExportType.FLASH, exportOptions );
}



[サンプルをダウンロード]