0 оценок0% нашли этот документ полезным (0 голосов)
19 просмотров2 страницы
AE Smart import JSX code.
Copy this content, make a new text file, and paste it there. Name the file "Smart Import.jsx". Paste the file you just made in the SCRIPTS folder.
Or download this file, and rename it "Smart Import.jsx". Paste the file you in the SCRIPTS folder.
AE Smart import JSX code.
Copy this content, make a new text file, and paste it there. Name the file "Smart Import.jsx". Paste the file you just made in the SCRIPTS folder.
Or download this file, and rename it "Smart Import.jsx". Paste the file you in the SCRIPTS folder.
AE Smart import JSX code.
Copy this content, make a new text file, and paste it there. Name the file "Smart Import.jsx". Paste the file you just made in the SCRIPTS folder.
Or download this file, and rename it "Smart Import.jsx". Paste the file you in the SCRIPTS folder.
scriptName = "Smart Import"; // Ask the user for a folder whose contents are to be imported. var targetFolder = Folder.selectDialog("Import items from folder..."); if (targetFolder != null) { // If no project open, create a new project to import the files into. if (! app.project) { app.newProject(); } function processFile(theFile) { try { // Create a variable containing ImportOptions. var importOptions = new ImportOptions(theFile); importSafeWithError(importOptions); } catch (error) { // Ignore errors. } } function testForSequence(files) { var searcher = new RegExp("[0-9]+"); var movieFileSearcher = new RegExp("(mov|avi|mpg)$", "i"); var parseResults = new Array; // Test that we have a sequence. Stop parsing after 10 files. for (x = 0; (x < files.length) & x < 10; x++) { var movieFileResult = movieFileSearcher.exec(files[x].name); if (! movieFileResult) { var currentResult = searcher.exec(files[x].name); // Regular expressions return null if no match was found. // Otherwise, they return an array with the following information: // array[0] = the matched string. // array[1..n] = the matched capturing parentheses. if (currentResult) { // We have a match -- the string contains numbers. // The match of those numbers is stored in the array[1]. // Take that number and save it into parseResults. parseResults[parseResults.length] = currentResult[0]; } else { parseResults[parseResults.length] = null; } } else { parseResults[parseResults.length] = null; } } // If all the files we just went through have a number in their file names, // assume they are part of a sequence and return the first file. var result = null; for (i = 0; i < parseResults.length; ++i) { if (parseResults[i]) { if (!result) { result = files[i]; } } else { // In this case, a file name did not contain a number. result = null; break; } } return result; } function importSafeWithError(importOptions) { try { app.project.importFile(importOptions); } catch (error) { alert(error.toString() + importOptions.file.fsName, scriptName); } } function processFolder(theFolder) { // Get an array of files in the target folder. var files = theFolder.getFiles(); // Test whether theFolder contains a sequence. var sequenceStartFile = testForSequence(files); // If it does contain a sequence, import the sequence, if (sequenceStartFile) { try { // Create a variable containing ImportOptions. var importOptions = new ImportOptions(sequenceStartFile); importOptions.sequence = true; // importOptions.forceAlphabetical = true; // Un-comment this if you want to force alpha order by default. importSafeWithError(importOptions); } catch (error) { } } // Otherwise, import the files and recurse. for (index in files) { // Go through the array and set each element to singleFile, then run the following. if (files[index] instanceof File) { if (! sequenceStartFile) { // If file is already part of a sequence, don't import it individually. processFile(files[index]); // Calls the processFile function above. } } if (files[index] instanceof Folder) { processFolder(files[index]); // recursion } } } // Recursively examine that folder. processFolder(targetFolder); } } SmartImport();}