NEKOMATAYA

1- レス

何でも質問箱


[91]kiyo:10/12/23 00:32:43 ID:q9eYeT6g

for(var i=1; i<=app.project.items.length; i++){
// ここでアイテムが総当たりになっているので
var oldName = app.project.item(i).file.name; // ソースフッテージ名
// fileプロパティを持たないアイテムではここで止まります
// 先にFootageItemの判定を行わないといけません
// アイテムのfileはプロクシが有効な場合はプロクシを指しているはずなので
// そこでも誤動作の可能性があります
var newName =app.project.item(i).name; // AE上で変更したアイテム名
if(app.project.item(i) instanceof FootageItem){
if(newName != oldName){
oldFileObj = new File(oldName);
// Fileオブジェクトをファイル名だけで初期化するにはカレントフォルダをファイルのあるフォルダに移動する必要があります。
// このコードではファイルが正常にハンドリング出来ない可能性が高いです。
// オリジナルのファイルを参照しておいた方が良いです。
// myFile=new File(myItem.mainSource.file.fsName) 等の方が良いでしょう。
// リネームしたあとでも myFileは該当ファイルの参照が可能です
// つまり myItem.replace(myFile) として使えるので newFileObjを作る必要はありません
newFileObj = oldFileObj.rename(newName);
//リネームした時点でソースファイルをロストしますので、注意が必要です
app.project.item(i).replace(newFileObj);
// replaceメソッドでファイルを置き換える場合は、注意が必要です。
// ファイルが連番の場合やPSD等のファイルオブジェクトのみでは素材が特定出来ないケースがあります
}
}
}
という感じです。参考になれば


名前

E-mail



0ch BBS 2004-10-30 (+Nekomataya/2005-02-17)