Не похоже, чтобы вы приложили много усилий в своем тесте. Так или иначе. Вот решение. Дело не так просто. Слои, такие как Solids, не имеют длительности, которую вы можете установить. Но вы можете установить их inPoint
и outPoint
. Другие слои, такие как comp, должны быть изменены в их источнике. См. Код ниже о том, как это сделать.
function main(){
// do some checking if we have a comp and a layer selected
var curComp = app.project.activeItem;
if (!curComp || !(curComp instanceof CompItem)) {
// alert and end the script
alert("please select a composition and at least a layer");
return;
}
var durationValue = 1; // the desired value in seconds
var selectedLayer = curComp.selectedLayers[0];
// if the layer has source layers it is a comp
// so we change its source duration
// else
// we have layers like solids or lights. They have no source and no layers in them
// so we change their outPoint
if (selectedLayer.source.numLayers != null){
$.writeln('we have a comp');
selectedLayer.source.duration = durationValue;
} else {
$.writeln('we have a layer');
selectedLayer.outPoint = selectedLayer.inPoint + durationValue;
}
}
main();
спасибо. Да, я только начинаю понимать эту тему, и я так плохо изучил материал, но мне нужно было уже написать сценарий. Еще раз спасибо за помощь. –
Пожалуйста, отметьте его как решенный – fabianmoronzirfas