我有一個 for 回圈,我想在時間軸上分配一定數量的相同長度的單詞。
我有變數可以給我每個文本的持續時間、單詞產生的開始和結束。
var wordArray = [];
for (t = 0; t < words.length; t ) {
//This generates the textbox
wordArray[wordArray.length] = currentComp.layers.addText(words[t]);
if (t == 0) {
//This makes the first textbox appear in the start
wordArray[wordArray.length - 1].inPoint = start;
//This makes the first textbox have the length with the value that divides it by the number of words
wordArray[wordArray.length - 1].outPoint = wordArray[wordArray.length - 1].inPoint textTime;
//Here I am trying to make them all evenly distributed by multiplying the divided duration for the number of words that are already existing
} else if (t < words.length - 2) {
wordArray[wordArray.length - 1].inPoint = start textTime * (wordArray.length - 1);
wordArray[wordArray.length - 1].outPoint = end - textTime * (wordArray.length - 1);
} else {
//This is here to make the last word stop at the end of the text duration.
wordArray[wordArray.length - 1].inPoint = start textTime * (wordArray.length - 1);
wordArray[wordArray.length - 1].outPoint = wordArray[wordArray.length - 1].inPoint textTime;
}
}
如圖所示,錯誤出現在最后。最后的單詞(以白色突出顯示)的長度比前一個單詞的長度短,倒數第二個單詞的長度比其他所有單詞的長度都長。
我知道這不是語法問題,而是我似乎無法弄清楚的數學問題。提前致謝
編輯:找到答案并更新語法以匹配它。

uj5u.com熱心網友回復:
我更新了語法以匹配正確的代碼。
事實證明,問題在于沒有正確計算每個單詞的間隙。
我通過這樣做計算每個部分的開始和結束來讓它作業:
var startDurationString = timeCalc[0].split(":");
var finalStartDurationString = startDurationString[1] ":" startDurationString[2] ":" startDurationString[3];
var startDuration = currentFormatToTime(finalStartDurationString, currentComp.frameRate);
var endDurationString = timeCalc[1].split(":");
var finalEndDurationString = endDurationString[1] ":" endDurationString[2] ":" endDurationString[3];
var endDuration = currentFormatToTime(finalEndDurationString, currentComp.frameRate);
然后,我使用開頭和結尾的差值除以單詞的長度。
durationForEachText = (endDuration-startDuration) / numberOfWords.length;
希望它可以幫助那里的任何人。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/476027.html
標籤:javascript 数组 数学 扩展脚本
