jsで即席です。私のところでは、一応動きました(CS2 Win)。
ただしひとつ(すくなkともひとつ、というのが正確でしょうが)解決できません。
最後のコメントアウトしてある//myNewDoc.close();を活かすと、2番目に処理されるレイヤーから、duplicateのところでエラーが起きてしまうのです。
〜〜〜...どうしても、解決できません....
新規作成したファイルを開けっ放しだと、処理は問題なく終わりますけど...。
あるいはもっと根本的なところに問題があるのでしょうか。。。。
詳しい方おられれば、勝手ながら、お教えいただけると幸いです。
docObj = app.activeDocument;
layObj = docObj.layers;
layLength = layObj.length;
//保存先のフォルダを選びます。
myFolderName = Folder.selectDialog("Select a folder to save");
//レイヤーごとの処理。
//見た目で要不要が決められるよう可視レイヤーのみ書き出すという設定にしてみました。
if(myFolderName) {
for (i=0; i<layLength; i++){
theLay = layObj[i];
if(theLay.visible) {
if (theLay.locked)theLay.locked = false;
myLayName = theLay.name;
myNewFname = myFolderName+"\\"+myLayName+".ai";
mySaveFile = new File(myNewFname);
myNewDoc = documents.add();
myPItems = theLay.pageItems;
alert(myPItems);
//各レイヤーにある項目を複製
for(j=0; j<myPItems.length; j++){
if (myPItems[j].locked) myPItems[j].locked = false;
myDupObj = myPItems[j].duplicate();
//複製したものを別ドキュメントに移動です myDupObj.moveToBeginning(myNewDoc);
}
myNewDoc.saveAs(mySaveFile);
//myNewDoc.close();
}
}
}
....どなたかご存知の方おられないでしょうか。
野良猫 2006/11/16 21:38:49
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
001
//複製したものを別ドキュメントに移動です
のコメントの後、改行いれてください。
すみません。
野良猫 2006/11/16 21:40:08
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
002
ごめんなさい、それと
alert(myPItems);
をコメントアウトしてください。
何しろ即席なので...
野良猫 2006/11/16 22:07:08
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
003
javaは解りませんが、closeする前にnillで解放してあげればいいんじゃないかと思いました。
スクリプトって凄い! 2006/11/17 13:04:46
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[2523] 旧掲示板 (2006/11/16 Thu 21:38)