```
function writeReport(path, reportText) {
var reportFile = new File(path ); //path + "/font_report.txt"
if(reportFile.exists){
//alert('file already exists');
reportFile.open("w"); //reportFile.open("a"); //a是append模式
reportFile.write(reportText);
reportFile.close();
}
else{
var RCF_file = new File(reportFile);
RCF_file.open("w");
RCF_file.write(reportText);
RCF_file.close();
}
//alert('Report Complete');
}
//獲取所有合成
var runType = 1;
//1---正常運行
//2---檢測錯誤 @136@新郎:許鵬飛
//3---只文本
var str = "";
var index = 1;
// 獲取當前激活的合成
var activeComp = app.project.activeItem;
if (activeComp == null )
{
alert("主合成沒有激活,請修改下AE模板");
}
//----------第一層(最外面一層)開始
var curComp = activeComp;
if (curComp != null && (curComp instanceof CompItem))
{
//----------for numLayers 開始----------------------------
for (var i = 1; i <= curComp.numLayers; i++)
{
var curLayer = curComp.layer(i);
if (curLayer.shy == true)
continue;
if (curLayer.sourceText == null ) //curLayer != null && (curLayer instanceof CompItem)
{
//----------第二層開始
if (curLayer.source == null)
continue;
var curComp2 = curLayer.source;
//----------for numLayers 開始----------------------------
for (var i2 = 1; i2 <= curComp2.numLayers; i2++)
{
var curLayer2 = curComp2.layer(i2);
if (curLayer2.shy == true)
continue;
if (curLayer2.sourceText == null ) //if (curLayer2 != null && (curLayer2 instanceof CompItem))
{
}
else
{
//---------sourceText開始-----------------
//curLayer
var sourceText2 = curLayer2.sourceText;
if (sourceText2.numKeys == 0)
{
// textValue is a TextDocument. Retrieve the string inside
var oldString2 = sourceText2.value.text;
if(runType == 1)
str = str + "@" +index.toString() + "@"+ oldString2 + "\r\n";
if(runType == 2)
str = str + "@層名2:" + curLayer2.name + "@" +index.toString() + "@"+ oldString2 + "\r\n";
else if(runType == 3)
str = str + oldString2 + "\r\n";
else{}
index++;
}
else
{
// Do it for each keyframe:
for (var keyIndex2 = 1; keyIndex2 <= sourceText2.numKeys; keyIndex2++)
{
// textValue is a TextDocument. Retrieve the string inside
var oldString2 = sourceText2.keyValue(keyIndex2).text;
if(runType ==1)
str =str + "@" +index.toString() + "@"+ oldString2 + "\r\n";
if(runType == 2)
str = str + "@層名2:" + curLayer2.name + "@" +index.toString() + "@"+ oldString2 + "\r\n";
else if(runType == 3)
str = str + oldString2 + "\r\n";
else{}
index++;
}
}
//---------sourceText結束-----------------
}
}
//----------for numLayers 結束----------------------------
//----------第二層結束
}
else
{
//---------sourceText開始-----------------
//curLayer
var sourceText = curLayer.sourceText;
if (sourceText.numKeys == 0)
{
// textValue is a TextDocument. Retrieve the string inside
var oldString = sourceText.value.text;
//str = str + "@層名1:" + curLayer.name + "@" +index.toString() + "@"+ oldString + "\r\n";
if(runType == 1)
str = str + "@" +index.toString() + "@"+ oldString + "\r\n";
if(runType == 2)
str = str + "@層名2:" + curLayer.name + "@" +index.toString() + "@"+ oldString + "\r\n";
else if(runType == 3)
str = str + oldString+ "\r\n";
else{}
index++;
}
else
{
// Do it for each keyframe:
for (var keyIndex = 1; keyIndex <= sourceText.numKeys; keyIndex++)
{
// textValue is a TextDocument. Retrieve the string inside
var oldString = sourceText.keyValue(keyIndex).text;
//str = str + "@層名1:"+ "@" +index.toString()+"@" + oldString + "\r\n";
if(runType == 1)
str = str + "@" +index.toString() + "@"+ oldString + "\r\n";
if(runType == 2)
str = str + "@層名2:" + curLayer.name + "@" +index.toString() + "@"+ oldString + "\r\n";
else if(runType == 3)
str = str + oldString+ "\r\n";
else{}
index++;
}
}
//---------sourceText結束-----------------
}
}
//----------for numLayers 結束----------------------------
}
//----------第一層結束
//alert(str);
writeReport ("D:/提取的字幕.txt", str);
alert("提取字幕成功,位置為 D:/提取的字幕.txt");
```
- 腳本管理器
- 讀取文件夾內文件
- 層層時間線偏移Sequencer.jsx
- 層層隨機時間偏移
- 文字分離char_separate_1.3
- 分解文字 把一個文字層分成若干個文字層
- 快速導入Smart Import
- 查找與替換字符 Find and Replace Text.jsx
- 層改名Selected_Layers_Renamer.jsx
- 創建燈光為選擇的三維層.jsx
- 創建攝像機為選擇的三維圖層.jsx
- 創建調節圖層CreateTrimmedAdjustmentLayer.jsx
- 創建調節圖層多個CreateSeveralTrimmedAdjustmentLayers.jsx
- 創建一個空物體到選擇的層Add Parented Null to Selected Layers.jsx
- 文字分離DecomposeText
- 修改渲染輸出文件位置Change Render Locations
- AE腳本讀取txt文檔并寫入數組
- AE腳本把數組寫入到txt文檔中
- AE提取字幕腳本
- AE批量用txt內容替換字幕腳本