compressFile()
требуется объект File
, в то время как activeDocument
является объектом document
.
Для открытых документов вам потребуется цикл по документам:
for (var i = documents.length - 1; i >= 0; i--) {
activeDocument = documents[i];
compressFile()
}
и в compressFile()
вы должны избавиться от opener
части (поскольку все документы уже открыты), но вам нужно заменить file
на фактический путь к документу:
// Compress the document
var tinify = new ActionDescriptor();
tinify.putPath(charIDToTypeID("In "), new File(activeDocument.path + "/" + activeDocument.name)); /* Overwrite original! */
tinify.putUnitDouble(charIDToTypeID("Scl "), charIDToTypeID("#Prc"), percentage);
Для файлового диалога вы можете просто изменить последний бит Compress File.jsx
:
//dialogue to select multiple files:
var startFolder = Folder.myDocuments,
myFiles = startFolder.openDlg(void(0), void(0), true);
if (myFiles != null) //if the dialogue wasn't cancelled
{
//launch compressFile for every selected file
for (var i = myFiles.length - 1; i >= 0; i--)
{
compressFile(myFiles[i])
}
}